到目前为止,我已经完成了两个React / Redux项目,第一个使用我们自己的中间件,而最近一个使用redux-thunk
。首先,我们将“常规”操作对象用于异步操作,这由中间件解释。在这种情况下,我们的操作可以理解地出现在react本机调试器的操作列表中。
但是,在最近的项目中,我注意到我们的重击并没有在调试器中以 not 的形式出现,这提示了以下问题:
1)这正常吗? 2)如果是这样,人们是否认为这不是问题? 3)其他异步动作库也有同样的问题吗?
答案 0 :(得分:1)
你能和我分享你的混蛋吗? Thunk返回Thunk中间件传递给其调用的函数。如果要在thunk返回的函数中分派动作,则将看到分派。只是不会从笨拙中得到。示例:
export const gotSomething = data => {
return {
type: GOT_SOMETHING,
data,
};
};
export const getSomething = () => { // <-- This is our thunk!
return async dispatch => {
const { data } = await axios.get('/something');
dispatch(gotSomething(data)); <-- This is the only thing being dispatched
};
};
唯一真正可以派发到这里的是GOT_SOMETHING。
所以顺序是这样的:
因此,即使从技术上讲,您正在对thunk进行“调用分派”,实际上您实际上只是在thunk返回的函数内部分派了动作。我希望这会有所帮助!