2017-06-13 38 views
4

这真是一个简单的JS问题;我确定这个问题是一个范围。我想要做这样的事情,但这是不正确的语法。如何在mapDispatchToProps中调用生成器函数?

基本上,我希望组件中的事件在事件发生时分派不同的动作。在这种情况下,我想知道这应该如何完成,这整个方法可能是错误的。

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

回答

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 
相关问题