迄今为止,我已经完成了两个 React/Redux 项目,第一个使用我们自己的中间件,最近一个使用redux-thunk
. 首先,我们为异步操作使用“常规”操作对象,我们的中间件解释了这些操作对象。在这种情况下,我们的操作可以理解地出现在 react native 调试器的操作列表中。
然而,在最近的项目中,我注意到我们的 thunk 没有在调试器中显示为操作,这提示了以下问题:
1)这是正常的吗?2)如果是这样,人们是否认为这不是问题?3) 其他异步操作库是否有同样的问题?
迄今为止,我已经完成了两个 React/Redux 项目,第一个使用我们自己的中间件,最近一个使用redux-thunk
. 首先,我们为异步操作使用“常规”操作对象,我们的中间件解释了这些操作对象。在这种情况下,我们的操作可以理解地出现在 react native 调试器的操作列表中。
然而,在最近的项目中,我注意到我们的 thunk 没有在调试器中显示为操作,这提示了以下问题:
1)这是正常的吗?2)如果是这样,人们是否认为这不是问题?3) 其他异步操作库是否有同样的问题?
你能和我分享你的thunk吗?Thunks 返回 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 返回的函数内部调度操作。我希望这有帮助!