Redux/ES6 - 对象文字 shorthand 语法无法按预期在连接函数中工作

Redux/ES6 - Object literal shorthand syntax for not working in connect function as expected

在尝试发送一个动作时 myAction 它失败了,直到我重新排列了语法上看起来相同的 es6 代码。

很可能我没有得到关于 es6 对象文字 shorthand 的信息,或者 connect 函数在幕后做了什么。

Ex 1 - 不工作

myAction 没有被正确解释为 shorthand 对于 return 的对象文字,其中键和值名称匹配。

var mapDispatchToProps = () => ({myAction});

MyComponent = connect(
  mapStateToProps,
  mapDispatchToProps 
)(MyComponent);

例 2 - 工作

一旦我将 myAction 的 shorthand 语法直接添加到 connect 函数中,它就会按预期工作。

MyComponent = connect(
  mapStateToProps,
  {myObject}
)(MyComponent);

问题:

第一种情况我希望函数 return 与第二种情况相同的对象文字。为什么不是这样。

随回答更新:

下面的答案是正确的 - 如果你想看解释它的视频,请点击这里 https://egghead.io/lessons/javascript-redux-using-mapdispatchtoprops-shorthand-notation

试试这样的:

const mapDispatchToProps = (dispatch) => (return {someCallBack: () => dispatch({myAction})});

第一个示例似乎缺少 dispatch 参数和调用。查看 TodoList 示例。然后,您可以在传递给 connect() 的组件中使用 someCallBack

来自 connect() 文档:

If a function is passed, it will be given dispatch. It’s up to you to return an object that somehow uses dispatch to bind action creators in your own way.