函数中dispatch参数的重点是什么?

时间:2018-05-14 15:09:14

标签: reactjs react-redux redux-thunk

新的反应和减少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;
  };
};

1 个答案:

答案 0 :(得分:3)

来自文档......

  

Redux Thunk中间件允许您编写返回的动作创建者   一个函数而不是一个动作。 thunk可以用来延迟   发送行动,或仅在某种情况下发送   满足。内部函数接收存储方法dispatch和   getState作为参数。

因此,dispatch参数的重点是,您可以在将对象返回到reducer之前运行函数或其他操作。例如,如果您使用操作命中API,则可以调度另一个可以解析响应的函数,然后调度将解析后的响应返回给Reducer的操作。或者它可能不会调度最终操作,因为API响应很糟糕。