Redux RTK API Slice中能否从其他Reducer分发Action?
Redux RTK API Slice中在query的onSuccess里分发其他Reducer的Action是否可行?
完全可以这么做,你给出的示例写法是正确的。
在Redux Toolkit通过createApi创建的API Slice中,每个query或mutation都支持onSuccess这类生命周期回调函数。回调参数里的dispatch就是Redux store的dispatch方法,你可以用它分发任何已定义的action——不管这个action属于哪个reducer。
正确的代码示例如下:
getSomething: builder.query<SomeProps, void>({ query: () => ({ url: "...", headers: { 'Content-Type': 'application/json', } }), onSuccess: (response: SomeProps, {dispatch}) => { dispatch(someActionFromAnotherReducer(response)) } })
除了onSuccess,像onError、onQueryStarted这类回调也能获取到dispatch,你可以根据业务需求在不同请求阶段处理action分发。需要注意的是,要确保你已经正确导入了要分发的action,且对应的reducer已经注册到Redux store中。
内容的提问来源于stack exchange,提问作者four-eyes
相关产品推荐
相关产品推荐

