[英]Why isn't React dispatching action?
看到一些类似的帖子,还没有找到我的答案。 我有这段代码试图从数组中删除 object,并设置了后端,因此它可以在 Post Man 上工作,当我开始使用 Redux 时,我遇到了这个问题。
动作.js :
export const deletePost = (id) => async (dispatch) => {
try {
await axios.delete(`api/posts/${id}`);
dispatch({
type: DELETE_POST,
payload: { id },
});
dispatch(setAlert('Post removed', 'success'));
} catch (err) {
dispatch({
type: POST_ERROR,
payload: { msg: err.response.statusText, status: err.response.status },
});
}
};
Reducer 已合并到根 reducer 文件中
减速器.js :
case DELETE_POST:
return {
...state,
posts: state.posts.filter((post) => post._id !== payload), ///Removes the post from the array
loading: false,
};
组件.js :
{!auth.loading && user === auth.user._id && (
<button
onClick={() => deletePost(_id)}
type='button'
className='btn btn-danger'
>
<i className='fas fa-delete-left'></i>
</button>
)}
我试过调试,当我单击按钮时,deletePost() 操作似乎甚至没有开始运行。
我发现这段代码实际上删除了,但是在 action.js 文件中,当我分派DELETE_POST
类型时,它会立即运行 catch。 问题出在 try{dispatch()} function 中,因为我想在它实际记录之前记录,但我想在之后记录的却没有。
编辑:它说对于 action.js 文件中的每个调度,调度不是 function ......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.