在Flux中解构函数参数的原因是什么?

时间:2017-06-28 21:15:08

标签: javascript reactjs redux react-redux

我是Flux的新手,我想知道为什么论证解构如此频繁。 它为初学者制造了很多噪音,所以我希望这是有原因的。

例如,乍一看这样的事情似乎过分了:

function incrementIfOdd() {
  return (
    dispatch: (action: actionType) => void,
    getState: () => counterStateType
  ) => {
      const { counter } = getState();

      if (counter % 2 === 0) {
        return;
      }

      dispatch(increment());
  };
}

另外:我应该如何知道是否应该返回上面代码中的对象或匿名函数?

发现于: https://github.com/chentsulin/electron-react-boilerplate/blob/master/app/actions/counter.js#L23

我使用babeljs.io/repl/来“翻译”它以便understand what this does

1 个答案:

答案 0 :(得分:1)

其中的语法都没有特定的Flux(或Redux):

  • dispatchgetState之后的符号是类型符号,可能是Flow或TypeScript
  • const { counter }用法是ES6“解构分配”,是一种较短的说法const counter = getState().counter

使用Redux,编写“动作创建者”功能很常见。正常操作创建者返回一个操作(具有type字段的普通对象)。编写“thunk action creators”也很常见,它返回一个可以包含异步逻辑的函数,或者像你粘贴的例子一样访问商店。