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

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

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

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

最佳答案 有趣.以下代码有效:

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
点赞