Не получается прокинуть функцию через props
в React приложении вынес функцию, которая отвечает за добавление массива (нового поста) в отдельный файл, где лежат все массивы.
export let addPost = (postMessage) => {
let newPost = {
id: 6,
message: postMessage,
likeCount: 0
};
state.profilePage.postDate.push(newPost);
}
Так как я экспортирую функцию addPost без дефолта, то я импортирую его в индексный файл и передаю в App.jsx
import { addPost } from "./redux/state";
<App state={state} addPost = { addPost }/>
После чего в файле App.jsx я прокидываю в константу App, которая возвращает разметку, после чего пытаюсь вынести её в файл Profile.jsx через пропсы в компонентах
<Profile state={props.state.profilePage}
addPost={props.addPost} />} />
Аналогично поступаю в данном файле, прокидывая в компоненту MyPost
<MyPosts postDate={props.state.postDate}
addPost={props.addPost} />
Ну и конечный этап, в MyPosts хочу добавить данную функцию через пропсы
const MyPosts = (props) => {
let postsElement = props.postDate.map( p => <Post message={p.message} likecount=
{p.likeCount}/>);
let newPostElement = React.createRef();
let addPost = (props) => {
let text = newPostElement.current.value;
props.addPost(text);
};
После чего в данной константе возвращая разметку я присваиваю Рефы, полю ввода
<div>
<textarea ref={newPostElement}></textarea>
</div>
и в кнопку пытаюсь передать функцию, которая непосредственно добавила бы этот новый пост
<div>
<button onClick={ addPost }>Add Post</button>
</div>
При вводе текста в поле ввода, все нормально, стоит нажать кнопку, добавить пост, то выдается ошибка, что props.addPost is not a function
let addPost = (props) => {
let text = newPostElement.current.value;
props.addPost(text);
};
Выдавая ошибку на props.addPost(text) Перепробовал многое, если я данную функцию написанную в state вызываю принудительно в индексном файле, перед тем как начинаем отрисовывать дерево, и в скобках задаю сообщение addPost('Hello World!') к примеру, то элемент отрисовывается отлично, добавляя все что нужно и id и likeCount и данное сообщение, выглядит так же как и должно выглядеть. Подскажите пожалуйста, в чем может быть проблема? И как сделать так, что бы написанный текст при нажатии на кнопку, добавлял пост?