我是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。
答案 0 :(得分:1)
其中的语法都没有特定的Flux(或Redux):
dispatch
和getState
之后的符号是类型符号,可能是Flow或TypeScript const { counter }
用法是ES6“解构分配”,是一种较短的说法const counter = getState().counter
使用Redux,编写“动作创建者”功能很常见。正常操作创建者返回一个操作(具有type
字段的普通对象)。编写“thunk action creators”也很常见,它返回一个可以包含异步逻辑的函数,或者像你粘贴的例子一样访问商店。