新的反应和减少thunk,只是想知道具有调度参数
的原因是什么return(dispatch:Dispatch,getState :()=> ReduxState):
在isTest()方法中?我的理解是dispatch仅用于发送更新状态的动作,但我的方法不需要也不需要调度动作。
如果从方法中删除dispatch参数,我的网格无法正确更新。
Container file:
getTest: ():any => {
return {
disabledFields: dispatch(isTest("Abc"))
? [grid.title]
: [grid.name]
};
}
Action file:
export const isTest = (
str: String
) => {
return (
dispatch: Dispatch<ReduxState>,
getState: () => ReduxState
): boolean => {
return getState().id === 5;
};
};
答案 0 :(得分:3)
来自文档......
Redux Thunk中间件允许您编写返回的动作创建者 一个函数而不是一个动作。 thunk可以用来延迟 发送行动,或仅在某种情况下发送 满足。内部函数接收存储方法dispatch和 getState作为参数。
因此,dispatch参数的重点是,您可以在将对象返回到reducer之前运行函数或其他操作。例如,如果您使用操作命中API,则可以调度另一个可以解析响应的函数,然后调度将解析后的响应返回给Reducer的操作。或者它可能不会调度最终操作,因为API响应很糟糕。