我是 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)特定的:
dispatch
和getState
之后的符号是类型符号,大概是针对 Flow 或 TypeScriptconst { counter }
用法是 ES6 的“解构赋值”,是const counter = getState().counter
的更简短表达方式
使用 Redux,编写“ Action 创建者”函数是很常见的。普通操作创建者返回一个操作(带有 type
字段的普通对象)。编写“thunk Action 创建者”也很常见,它返回一个可以包含异步逻辑或访问存储的函数,如您粘贴的示例中所示。
关于javascript - Flux 中函数参数解构背后的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44812654/