采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
似乎在单独的一个createSlice片段中,reducer字段和extraReducer字段只能有一个生效,我尝试不删除reducer的内容,那么无法使得createAsyncThunk异步Action生效,我很疑惑,reducer和extraReducer之间到底是什么关系,区别在哪里,发别在什么场景中使用!!!
hello 同学你好,这个问题沉了,刚刚才看到,拖了这么久回复,实在不好意思。
在一个createSlice片段中,reducer字段和extraReducer字段可以共存,都可以生效,比如说课程的userSlice (第十章内容)
那么reducer和extraReducer有什么区别呢?关于这个问题,中文资料非常有限,但是在stackoverflow上有关于这个问题的答案。
https://stackoverflow.com/questions/66425645/what-is-difference-between-reducers-and-extrareducers-in-redux-toolkit
另外,也可以参考这篇文章:
https://dd.engineering/blog/a-practical-introduction-to-using-redux-with-react
简单来说,extraReducer就是普通reducer的加强版, 它可以为一个已经存在的action创建reducer。比如说,如果我们需要从别的slice中使用action,就需要通过extraReducer来处理了。也就是说如果一个action是独立于slice存在的,比如说我们课程中所有的异步 thunk action(如 export const getProductDetail = createAsyncThunk ),都是独立于slice定义,并且独立与slice使用的, 那么就需要我们使用extraReducer来处理了。
slice中每个普通的reducer会自动地、一对一地、创建它所对应的action,而extraReducer则不会创建action。
登录后可查看更多问答,登录/注册
React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能
657 5
823 10
707 2
1.7k 2
813 1