我在我的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);
})
}
}
}
答案 0 :(得分:1)
在功能组件中,导入useDispatch。
如果假设包含所有动作的动作文件名为myActions.js,则可以导入所有动作,例如
import { useDispatch } from 'react-redux';
import * as actions from './myActions'
现在使用useDispatch,您可以在其中传递操作。
在您的组件使用中,就像这样
const dispatch = useDispatch();
dispatch(actions.addPost())