如果 Redux 操作实际上不执行任何操作(即调度),为什么它们称为操作
Why are Redux actions called actions if they don't actually perform any action (I.E. dispatch)
如果 Redux 动作实际上并不作用于数据而只是 return 有效载荷,为什么它们被称为动作?
动作除了被分派之外还有其他用途吗,为什么动作在被调用时不分派?
这是否只是一种在未来证明应用程序可用于多个商店的方法?
这也产生了对 mapDispatchToProps 的需求,它通常是完全样板代码,用调度调用包装动作
通常可以用这个函数来概括
return 是一个 mapDispatchToProps 函数
// mapActionsToDispatchProps.js
const mapActionsToDispatchProps = actions => {
return dispatch => (
actions.mapEntries(action => (
(...args) => dispatch(action(...args))
)
)
)
export default mapActionsToDispatchProps
Object.mapEntries 示例。
编辑
我看到关于 mapDispachToProps 主要是样板的最后一个问题可以通过直接传递一个动作对象来避免,connect 会为我映射它们。
请注意,action 只是一个带有 type
字段的普通对象,而 action creator 是一个函数returns 一个动作对象。
这里的命名是因为Redux本来就是"Flux Architecture", and Flux defines "actions" as "simple objects with a type
field"的一个实现。将它们命名为 "actions" 还是 "events" 的问题引起了激烈的争论,结论是继续使用 Flux 术语,因为这是现有 Flux 用户最熟悉的术语。
现在,当然,没有人记得存在其他 Flux 库,许多人认为 "action" 这个术语是 Redux 团队在某个时候发明的。
有关历史详细信息,请参阅以下 Redux 问题中的讨论:
- #140: Docs improvements
- #195: Breaking API Changes for 1.0
- #384: Recommend that action constants be named in past tense
- #891: Is Redux conflating actions with events?
是的,我们强烈鼓励人们使用the "object shorthand" form of mapDispatch
。
如果 Redux 动作实际上并不作用于数据而只是 return 有效载荷,为什么它们被称为动作?
动作除了被分派之外还有其他用途吗,为什么动作在被调用时不分派?
这是否只是一种在未来证明应用程序可用于多个商店的方法?
这也产生了对 mapDispatchToProps 的需求,它通常是完全样板代码,用调度调用包装动作
通常可以用这个函数来概括 return 是一个 mapDispatchToProps 函数
// mapActionsToDispatchProps.js
const mapActionsToDispatchProps = actions => {
return dispatch => (
actions.mapEntries(action => (
(...args) => dispatch(action(...args))
)
)
)
export default mapActionsToDispatchProps
Object.mapEntries 示例。
编辑
我看到关于 mapDispachToProps 主要是样板的最后一个问题可以通过直接传递一个动作对象来避免,connect 会为我映射它们。
请注意,action 只是一个带有 type
字段的普通对象,而 action creator 是一个函数returns 一个动作对象。
这里的命名是因为Redux本来就是"Flux Architecture", and Flux defines "actions" as "simple objects with a type
field"的一个实现。将它们命名为 "actions" 还是 "events" 的问题引起了激烈的争论,结论是继续使用 Flux 术语,因为这是现有 Flux 用户最熟悉的术语。
现在,当然,没有人记得存在其他 Flux 库,许多人认为 "action" 这个术语是 Redux 团队在某个时候发明的。
有关历史详细信息,请参阅以下 Redux 问题中的讨论:
- #140: Docs improvements
- #195: Breaking API Changes for 1.0
- #384: Recommend that action constants be named in past tense
- #891: Is Redux conflating actions with events?
是的,我们强烈鼓励人们使用the "object shorthand" form of mapDispatch
。