Ich bin mir nicht sicher, wie Sie die state
ordnungsgemäß in redux
aktualisieren. Ich bekomme doppelte Einträge.Nicht sicher, wie State in Redux richtig zu aktualisieren
Das ist, wie die state
wie
const STATE = {
windowOne: { ... }
windwoTwo: { ... }
windowThree: { ... }
}
Das
ist eine meiner Reduzierungen siehtexport default function reducer(state = STATE, action) {
switch (action.type) {
case type.WINDOW_ONE: {
return {
...state,
windowOne: {
...state.windowOne,
foo: action.bar,
}
}
}
}
}
ich den Zustand wie an den Stützen meiner Komponente
function mapDispatchToProps(dispatch) {
return bindActionCreators(combinedActions, dispatch);
}
const mapStateToProps = state => {
const { windowOne } = state.windowOne;
return {
windowOne,
};
}
export default connect(mapStateToProps, mapDispatchToProps)(SomeComponent);
Und ich Karte kombinieren Sie die verschiedenen Reduzierungen hier
Wenn ich redux-logger
verwende, sehe ich, dass in windowOne
die ganze state
kopiert wird. Dort, nach dem Auslösen einer action
, finde ich windowTwo
und windowThree
. Ich bin auch nicht sicher, warum ich windowOne
in diesen Zeilen angeben müssen
const { windowOne } = state.windowOne;
Sollte nicht const { windowOne } = state
genug sein? Das könnte verwandt sein ...
Hm, ich hatte es so vor. Aber ich habe es in den Code geändert, den ich geschrieben habe, weil ich Daten zwischen 'windowOne',' windowTwo' und 'windowThree' austauschen muss. Ich dachte, ich übertrage meinen "Reducer" den ganzen "STATE" und gebe dann nur den 'windowOne' Part zurück. Das aktualisiert den 'Zustand' und die neu erzeugten Daten sind in einem anderen 'Reduzierer' zugänglich, wo ich auch 'STATE' übergebe. mit 'STATE.windowOne' sollte ich allerdings auf die aktualisierten Daten zugreifen können ?! – Stophface
Wenn Sie 'combinedReducers' verwenden, wird beim Übergeben und Zurückgeben des gesamten Status eine verschachtelte Kopie in jeder übergeordneten Statuseigenschaft erstellt. Wahrscheinlich möchten Sie entweder einen einzelnen Reducer verwenden oder ein Paket wie 'reduce-reducers' verwenden, wie in [Beyond combinedReducers] erklärt (http://redux.js.org/docs/recipes/reducers/BeyondCombineReducers.html#). sharing-data-zwischen-slice-reducers). – Oblosys