Redux / ES6 - 无法按预期在连接函数中使用的对象文字简写语法

时间:2016-08-24 01:45:22

标签: ecmascript-6 redux react-redux

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

我很可能没有得到关于es6对象字面速记的内容,或connect函数在幕后做的事情。

前1 - 不工作

myAction未被正确解释为返回键和值名称匹配的对象文字的简写。

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

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

前2 - 工作

我将myAction的简写语法直接添加到connect函数中后,就按预期工作了。

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

问题:

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

更新以附带答案:

以下答案是正确的 - 如果您想要查看解释它的视频,请转到此处https://egghead.io/lessons/javascript-redux-using-mapdispatchtoprops-shorthand-notation

1 个答案:

答案 0 :(得分:3)

尝试类似:

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

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

来自connect()文档:

  

如果传递了一个函数,它将被赋予调度。由您来回复一个以某种方式使用dispatch以您自己的方式绑定动作创建者的对象。