【问题标题】:How can I call a generator function inside mapDispatchToProps?如何在 mapDispatchToProps 中调用生成器函数?
【发布时间】:2017-11-14 14:07:02
【问题描述】:
这真的是一个简单的 JS 问题;我确定问题是范围之一。我想做这样的事情,但这是不正确的语法。
基本上,我希望组件中的一个事件在每次事件发生时调度不同的操作。这整个方法可能是错误的,在这种情况下我想知道应该如何做。
const mapDispatchToProps = dispatch => {
return {
function* getNextSection() {
yield dispatch(local_actions.general)
yield dispatch(local_actions.fixbugs)
yield dispatch(local_actions.resumefinish)
}
}
}
【问题讨论】:
标签:
javascript
reactjs
ecmascript-6
redux
【解决方案1】:
有趣。以下代码有效:
const action1 => ({ type: 'action1' })
const action2 => ({ type: 'action2' })
function* actionGenerator() {
yield action1()
yield action2()
}
// A generator returns an iterator,
// it has to be stored in a variable
const actionIterator = actionGenerator()
const myAction = () => actionIterator.next().value
connect(mapStatetoProps, {
myAction
})(MyComponent)
然后你可以像这样使用它:
this.props.myAction() // action1
this.props.myAction() // action2