为什么Redux将调度传递给动作的返回函数?
问题描述:
就Redux + React(和ES6)而言,完全的初学者对我很感兴趣 - 我已经建立了所有的管道,我所有的状态都在更新,但我仍然有点困惑。有教程进行操作,请在终极版行动之一,开始了: 为什么Redux将调度传递给动作的返回函数?
export function getApiData(){
return(dispatch) => {return(dispatch) => { -some other actions here- }
}
此功能从API获取数据,所以它还会调度getApiDataRequested和GetApiData成功的行动,但上面并对我来说没有意义。现在我知道调度表示意图更新Redux状态,但为什么调度作为参数传递给返回函数?
干杯!
答
这是因为它是使用Redux-thunk的异步操作的示例。 如果你看看这个中间件,它会检查你的动作是否是一个函数,如果是,它会将调度传递给你的返回函数。你不能只用REDX调用一个动作,你总是需要调度它,所以你应该使用调度对象来调用你的动作。
function createThunkMiddleware(extraArgument) {
return ({ dispatch, getState }) => next => action => {
if (typeof action === 'function') {
return action(dispatch, getState, extraArgument);
}
return next(action);
};
}
+0
啊,那是非常合情合理的;因为这个特定的getApiData函数从字面上调度其中的其他函数,所以它需要该调度参数来访问调度函数。我不相信我没有建立这种联系。 –
那ES6箭头的功能,它不返回调度,其实际发送派遣一个ananymous函数,其中该行动将发生 – Jeffin