2017-06-13 26 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 
相關問題