当组件只需要调度一个动作创建者时使用啥模式?
Posted
技术标签:
【中文标题】当组件只需要调度一个动作创建者时使用啥模式?【英文标题】:What pattern to use when a component only needs to dispatch an action creator?当组件只需要调度一个动作创建者时使用什么模式? 【发布时间】:2017-05-06 05:47:13 【问题描述】:我有一个不需要访问全局状态的组件,但确实需要调度一个动作创建者。
似乎有两种选择:
使用 react-redux connect() 并通过mapStateToProps
传递全局状态并通过 mapDispatchToProps
传递我的动作创建者 - 据我所知,虽然这样传递全局状态并不是一个好主意李>
不使用 react-redux connect() 而是使用 this.props.dispatch
还有其他选择吗?
【问题讨论】:
【参考方案1】:你可以只传递null
,而不是mapStateToProps
函数。
实现目标的方法有:
1.只注入dispatch
函数,不要听store
export default connect()(Component);
然后在组件中
this.props.dispatch(actionCreator());
2.注入actions creators
,不要听store
import * as actionCreators from './actionCreators'
export default connect(null, actionCreators)(Component);
然后在组件中
this.props.actionCreator();
顺便说一句,您永远不应该传递全局状态。它会扼杀任何性能优化,因为组件会在每次操作后重新渲染。
【讨论】:
以上是关于当组件只需要调度一个动作创建者时使用啥模式?的主要内容,如果未能解决你的问题,请参考以下文章