通过减速器功能组件

时间:2020-07-01 13:34:23

标签: reactjs redux

我在我的React功能组件中停留在传递减速器上, 请帮我解决这个问题。

这是我的减速机:

  export const addPost = (value : String) => {
     return {
         type:actionTypes.ADD_POST,
         value,
     }
}

我正在尝试传递道具,但是它给我的功能组件带来了错误,有建议吗?

功能组件:

 const Posts : React.FunctionComponent = () => {

   
    const submitPost = () => {
        let {addPost} = props.addPost
        let titleValue  = titleRef.current
        let descriptionValue = descriptionRef.current
        if (titleValue && descriptionValue) {
            if ( titleValue.value  === '' || descriptionValue.value === '' ) {
                toast.info('Could not add new topic')
            } else {
                axios.post(`http://localhost:4000/addPost`, {
                    title : titleValue.value,
                    description : descriptionValue.value,
                    username : localStorage.getItem('username')
                })
                    .then((res) => {
                        toast.info('Topic added succesfuly')
                        history.push('/homepage')
                        console.log('--------res', res);
                    })
                    .catch((err) => {
                        console.log('--------err', err);
                    })
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

在功能组件中,导入useDispatch。

如果假设包含所有动作的动作文件名为myActions.js,则可以导入所有动作,例如

import { useDispatch } from 'react-redux';
import * as actions from './myActions'

现在使用useDispatch,您可以在其中传递操作。

在您的组件使用中,就像这样

 const dispatch = useDispatch();
 dispatch(actions.addPost())