Redux kullanıyorum ve kullanıcının verileri değiştirmiş olması durumunda eyalette bir bayrak ayarlamak istiyorum.Redux redüktöründe durumun diğer parçalarına erişim
let serverData = {toggle: true}
const store = configureStore({data: serverData, originalData: serverData})
Sonra birkaç düşürücüler var
: Burada yapmak istiyorum ne
function data(state = {}, action) {
switch (action.type) {
case TOGGLE:
return {
...state,
toggle: !state.toggle
}
default:
return state
}
}
function changed(state = false, action) {
// This doesn't work; we are actually comparing state.changed.originalData and state.changed.data
return isEqual(state.originalData, state.data)
}
const rootReducer = combineReducers({
data,
originalData: (state={}) => state,
changed
})
changed
ayarlanır
Önce sunucudan bazı verilerle benim mağaza nemlendiricili ediyorum gerçek state.data
eğer bayrak artık state.originalData
eşittir. Ancak, combineReducers kullanarak, benim changed
redüktör içindeki devletin bu parçaları erişemez.
Bunu yapmanın en akılcı yolu nedir?
Örnekte yapmaya çalıştığınız şeyi anlatmak zor, ama bana göre, birleştirmek için tasarlanmadığı bir görev için 'combineReducers' kullanıyorsunuz. Bu, soruna genel bir yorum için, https: // github'a bakın.com/rackt/redux/issues/601 # issuecomment-133519377 –
Teşekkürler, maalesef bana gerçekten çok yardımcı olduğunu düşünmüyorum. Benim için kullanım durumu olarak: Bir kullanıcı bir sayfada bir şeyi düzenlediğinde 'Kaydedilmemiş değişikliklerin var' uyarısını göstermek istiyorum. Daha sonra içeriği orijinal haline geri döndürürse, bu mesaj kaybolacaktır. Redux deyimiyle her redüktörün ayrı bir devlet yapısına sahip olması için uğraşıyorum; İki ayrı devlet parçasını karşılaştırmak için bir redüktöre ihtiyacım var. –