Не получается прокинуть функцию через 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 и данное сообщение, выглядит так же как и должно выглядеть. Подскажите пожалуйста, в чем может быть проблема? И как сделать так, что бы написанный текст при нажатии на кнопку, добавлял пост?


Ответы (0 шт):