react-redux中的mapDispatchToProps写法

ONETWOTHREE
  • 1
新手上路,请多包涵

mapDispatchToProps不是映射dispatch到props上吗

const mapDispatchToProps = (dispatch) => ({
    showPlayer: (status) => {
        dispatch(showPlayer(status));
    },
    changeSong: (song) => {
        dispatch(changeSong(song));
    }
});

像这样。。。。
为什么看到有的地方直接写成一个对象比如

const mapDispatchToProps = {
   showPlayer(status);
   changeSong(song);
};

这样直接写action也可以吗 ,不需要dispatch? 还是说react-redux会自动帮你dispatch?
刚开始接触react 不是很清楚

回复
阅读 2.9k
3 个回答

这其实是使用bindActionCreator时的简写。
mapDispatchToProps如果是一个object,这个object所对应的value必须是actionCreator,这样redux里面会自动帮我们调用bindActionCreator

这是ES6的一种写法

let first = "1"
let second = "2"

let obj = {first, second}
// {first: "1", second: "2"}

更多可看:简洁表示法

itshizhan
  • 2
新手上路,请多包涵

请看最新的文档,mapDispatchToProps 是有两种形式,Object 或Function。
不过你问题中对象的形式,有错误,里面不应该是分号吧。
https://react-redux.js.org/do...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏