redux里使用mapDispatchToProps 有什么好处?

#1

在react里使用action需要把action绑定到组件的props(而且还得声明propType)上,通过this.props来使用。
如果子组件需要使用这个action,还得一级一级往下传。

function mapDispatchToProps(dispatch) {
  return bindActionCreators({
    fetchUser
  }, dispatch);
}
connect(null, mapDispatchToProps)(Component);

但实践上发现,action完全可以这样写。

export const fetch = () => {
  return store.dispatch({
    type: TYPE,
    payload: fetch(path)
  });
};

这样子的话方法import进来就可以直接调用,不管是在哪个地方。不需要任何绑定和类型声明。

#2

关注,我也觉得可以直接store import进来。省了好多事的感觉

#3

store中有很多状态你这个组件不一定用得上吧,也许你做的项目简单还真就一个组件用一个store。。。我只能说你不理解redux

#4

我想到某一种情况了。直接用store dispatch是可以,不过关注点有点分离了。如果把对应的action通过函数传进某个模块,然后这个模块的组件通过mapDispatchtoProps传递进去dispatch,组件只知道props里绑定的dispatch方法,一个组件只做这些事,是不是符合容器组件和ui组件的思想呢?