redux 未捕获的错误:操作必须是普通对象,实际类型为:“承诺”React-还原

zphenhs4  于 2022-11-24  发布在  React
关注(0)|答案(2)|浏览(137)

我遇到了客户端问题。服务器端工作正常,deleteCourse方法删除了课程,但我在客户端看到了标题中的错误。我不确定是怎么回事。如果我需要提供其他信息,只需询问:D
/actions/courses.js
第一个问题
/启动动作的按钮

<Button size="small" color="primary" onClick={() => {
          dispatch(deleteCourse(course._id))}}><DeleteIcon fontSize="small" /> Delete</Button>

我试着用consoleidogeletecourse,我看到这是一个坚定的承诺。现在我在youtube上看一些课程,并制作自己的项目,但所有这一切都完美地为那个家伙工作。
提前感谢!

9w11ddsr

9w11ddsr1#

调度的操作应该是如下对象:

{ type: DELETE, payload: id }

但您在这里调度了一个函数:

dispatch(deleteCourse(course._id))

我认为你应该直接调用它,而不是调度一个函数。在内部,你的函数是调度你想要的动作,所以你应该很好。

<Button size="small" color="primary" onClick={() => {
          deleteCourse(course._id)}}><DeleteIcon fontSize="small" /> Delete</Button>
csbfibhn

csbfibhn2#

通常情况下:您没有配置redux-thunk中间件,如果没有配置,它将无法工作。
编辑:不,你做了-在这一点上,我真的不是100%确定为什么你会得到这个错误信息。
但除此之外:您在这里编写的Redux风格已经过时三年多了,而且代码量可能是原来的4倍,间接性更强,更难学习。
你不应该在2022年写这样的代码。
请阅读why Redux Toolkit is how to use Redux today,然后遵循official Redux tutorial,它将从一开始就教你RTK。

相关问题