【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 2018-05-02
      • 2019-06-08
      • 2019-09-13
      • 2015-08-30
      • 2018-11-30
      • 2016-05-20
      • 2023-01-20
      • 2015-02-19
      • 2021-12-28
      相关资源
      最近更新 更多