2017-06-13 14 views
4

これは実際にはJSの簡単な質問です。問題は範囲の1つであると確信しています。私はこのようなことをしたいが、これは誤った構文です。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 
関連する問題