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.
在尝试发送一个动作时 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.