Nun, die Datei erneut lesen. Hier ist, wo intialState
erstellt:
const initialState = {
addedIds: [],
quantityById: {}
}
Jetzt ist quantityById
Funktion. Es ist initialState.quantityById
als state
übergeben.
const quantityById = (state = initialState.quantityById, action) => {
Die folgende Zeile spread operator
wird mit dem Objekt zurückzugeben, zu konstruieren.
return { ...state,
[productId]: (state[productId] || 0) + 1
}
{ ...state
Mittel nehmen Sachen aus state
Variable, das alle Eigenschaften bedeuten, wird in einem neuen Objekt sein wird. Dann wird [productId]: (state[productId] || 0) + 1
Sollwert von [productId]
an Wert von geben state
Objekt state[productId]
oder 0
wenn diese ID nicht auf state
Objekt war und füge 1
zu.
Insgesamt wird diese Linie [productId]
hinzufügen, wenn es nicht weitergegeben state
Objekt oder zu aktualisieren ist, nachdem es von state
Objekt kopiert wird. Weitere Informationen über spread operator
finden Sie auch hier.
Hoffe, das hilft!
Schlüssel ist Wert der Variablen productId, value ist (state [productId] oder 0 wenn state [productId] falsch ist) + 1 –
Meine Glaskugel sagt mir, dass Sie [berechnete Eigenschaft namens] (https: // developer .mozilla.org/de/docs/Web/JavaScript/Referenz/Operatoren/Object_initializer # Computed_property_names) und [logische Operatoren] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators) ... – ASDFGerte
'Glaskugel' - mach weiter so, und du kannst dir schließlich einen Kristall leisten: p –