2017-02-28 23 views
0

我试图在非组件文件中调用dispatchRedux:如何导入调度功能?

我的问题是,我试图用终极版,传奇,但它没有让我用一个回调函数内的yield关键字,我必须定义:

peerConnection.onicecandidate = (event) => { 
    if (event.candidate) { 
     yield put({ type: videoSessionActions.SEND_LOCAL_CANDIDATE, payload: event.candidate }); 
    } 
    } 

我想那么什么做的,而不是用普通的旧dispatch像这样:

peerConnection.onicecandidate = (event) => { 
    if (event.candidate) { 
     dispatch({ type: videoSessionActions.SEND_LOCAL_CANDIDATE, payload: event.candidate }) 
    } 
    } 

有没有办法来import { dispatch } from 'redux';

顺便说一句,这一切都发生在我的发电机功能在我的传奇。我不使用redux-observable的原因是因为它需要反应本机v0.40.0 +,我不能更新

回答

0

当然,有很多方法可以做到这一点,在this issue你可以看到如何。

你必须做的主要事情是connect您的组件这样的商店:

export default connect()(Controls);您还可以提供第一个参数connect功能,这将是mapStateToProps功能。如果你这样做,你将能够在你的组件之外做这样的事情(全局)

let createHandlers = function(dispatch) { 
    let peerConnection.onicecandidate = function(event) { 
    if (event.candidate) { 
     dispatch({ type: videoSessionActions.SEND_LOCAL_CANDIDATE, payload: event.candidate }) 
    }; 
    } 

    return { 
    peerConnection.onicecandidate, 
    // other handlers 
    }; 
} 

干杯!