Entdecken Sie Möglichkeiten zum Ändern von Array-Werten in Redux Store-Slices
P粉197639753
2023-08-30 11:35:40
<p>Ich habe ein Slice zum Speichern von Standortinformationen. Ich habe zwei Funktionen deklariert, set und setLocation. Die Set-Funktion akzeptiert ein Array von Standorten und die SetLocation-Funktion sollte einen Standort festlegen. </p>
<p>Dies sind Beispieldaten, die in der Standortvariablen gespeichert sind: </p>
<pre class="brush:php;toolbar:false;">constlocations = [{name: '1', index: 0}, {name: '2', index: 1}];</pre> ;
<p>Das ist mein Slice-Code:</p>
<pre class="brush:php;toolbar:false;">import { createSlice } from '@reduxjs/toolkit'
export const locationSlice = createSlice({
Name: 'Standorte',
Ausgangszustand: {
Standorte: null,
},
Reduzierstücke: {
set: (Bundesstaat, Standorte) =>
state.locations = Standorte.payload
},
setLocation: (Bundesstaat, Standort) =>
state.locations[location.index] = Standort
}
},
})
export const { set, setLocation } = locationSlice.actions
Standardspeicherorte exportierenSlice.reducer</pre>
<p>Der Aufruf von set(locations) ist gültig. Aber wenn „location“ ein Wert im „locations“-Array ist, kann ich setLocation(location) nicht verwenden, um einen einzelnen Standort im „locations“-Array zu ersetzen.
Wenn ich console.log(state.location) in der Funktion setLocation() verwende, erhalte ich einige Proxy-Objekte. </p>
你在
setLocation
操作中得到Proxy
的问题是因为在搜索特定位置时,你传递了location.index
,但你应该传递location.payload.index
。