javascript - Flux 中函数参数解构背后的原因是什么?

标签 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 .

最佳答案

其中没有任何语法是 Flux(或 Redux)特定的:

  • dispatchgetState 之后的符号是类型符号,大概是针对 Flow 或 TypeScript
  • const { counter } 用法是 ES6 的“解构赋值”,是 const counter = getState().counter 的更简短表达方式

使用 Redux,编写“ Action 创建者”函数是很常见的。普通操作创建者返回一个操作(带有 type 字段的普通对象)。编写“thunk Action 创建者”也很常见,它返回一个可以包含异步逻辑或访问存储的函数,如您粘贴的示例中所示。

关于javascript - Flux 中函数参数解构背后的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44812654/

相关文章:

javascript - Node.js - 无法使用 Fermata REST 客户端将嵌套/转义的 JSON 发布到正文

javascript - 如何在 Angular 应用程序中处理 API 凭据?

javascript - Angular 谷歌地图中标记信息显示的错误

javascript - Angular/Redux 无法读取未定义的属性 'dispatch'

javascript - 在更新快速移动的 UI 状态时,如何提高 Redux 的性能?

javascript - JQuery 更改特定元素内的类名

javascript - 我对 React.js 状态有一些问题

xcode - 升级了 React Native,现在找不到 glog/logging.h 文件

javascript - React 通量拦截器实现

javascript - Redux-表单提交错误