2017-02-28 25 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 
    }; 
} 

乾杯!