【发布时间】:2020-10-16 06:39:54
【问题描述】:
在我的 react 项目中,我有一个如下所示的操作文件:
const startLoad = () => async (dispatch) => {
dispatch({
type: CONTENT_LOAD,
});
};
// Get all content
export const getContents = () => async (dispatch) => {
dispatch(startLoad());
// some more code...
};
所以在这个例子中,我知道调度来自middleware,并且getContents 可以访问它,因为它是使用mapDispatchToProps 映射的。所以我假设当getContents 被调用时,它真的是这样调用的-> dispatch(getContents) 但这可以用普通的JavaScript 复制,这样我就可以看到到底发生了什么?如果我对为什么 getContents 可以访问 dispatch 有错误,请告诉我。
例如,startLoad 怎么能仅仅因为dispatch 调用startLoad 而使用dispatch?我注意到,如果我这样称呼它,它也会起作用:dispatch(startLoad(dispatch));。
将调度传递给startLoad 实际上对我来说更有意义,所以我不明白为什么不需要这样做。
编辑:这是我自己想出的最接近的例子。
const fun = () => (fun2) => {
fun2();
}
const fun2 = () => {
console.log('hello');
}
fun()(fun2);
【问题讨论】:
标签: reactjs redux react-redux redux-thunk redux-store