2016-04-06 14 views
1

'a göre. Şu an sahip olduğum bir işlev. Üç farklı eylemi gönderebilen bir işleyici.Redux'ta gönderim durumu

Buraya eyalette erişebilmem için, 'u yalnızca state.bin !=== bin'un mümkün mü yoksa reducer içinde yapılabiliyor mu?

export function handleChangeDispatcher (dispatch) { 
    return (inputId) => (event) => { 
    let data = cleanHandleChangeEvent(inputId, event) 
    dispatch(formChangeAction(data)) 
    if (data.cardNumber) dispatch(creditCardChangeAction(data.cardNumber)) 
    if (data.cardNumber && data.cardNumber >= 6) dispatch(binChangedAction(getBin(data.cardNumber))) 
    } 
} 

cevap

4

redux-thunk'u kullanın. Bu kullanım durumunu tam olarak çözer. Readme:

function incrementIfOdd() { 
    return (dispatch, getState) => { 
    const { counter } = getState(); 

    if (counter % 2 === 0) { 
     return; 
    } 

    dispatch(increment()); 
    }; 
} 
+0

Gerçekten bu 'incredmentIfOdd' işlevinin 'mapDispatchToProps' bağlamında nasıl kullanıldığını anlamıyorum? http://stackoverflow.com/questions/36461139/accessing-getstate-from-within-action-creator-using-redux-thunk – ThomasReggi

+0

'incrementIfOdd' örnek asenkron eylem yaratıcısı işlevidir. Redux'un “bindActionCreators” yardımcı programına, bunu çağırdığınızda otomatik olarak gönderim yapmak için iletebilir veya kendiniz el ile gönderip gönderebilirsiniz. Bu soruda denediğiniz yaklaşım doğru değil. – markerikson