如何在mapDispatchToProps中调用生成器函数?

时间:2017-06-13 00:25:35

标签: javascript reactjs ecmascript-6 redux

这是一个简单的JS问题;我确定问题是范围之一。我想做这样的事情,但这是不正确的语法。

基本上,我希望组件中的事件在每次事件发生时调度不同的操作。整个方法可能是错误的,在这种情况下,我想知道应该如何做到这一点。

const mapDispatchToProps = dispatch => {
  return {
    function* getNextSection() {
      yield dispatch(local_actions.general)
      yield dispatch(local_actions.fixbugs)
      yield dispatch(local_actions.resumefinish)
    }
  }
}

1 个答案:

答案 0 :(得分: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