Entdecken Sie Möglichkeiten zum Ändern von Array-Werten in Redux Store-Slices
P粉197639753
P粉197639753 2023-08-30 11:35:40
0
1
438
<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>
P粉197639753
P粉197639753

Antworte allen(1)
P粉248602298

你在setLocation操作中得到Proxy的问题是因为在搜索特定位置时,你传递了location.index,但你应该传递location.payload.index

setLocation: (state, location) => {
   state.locations[location.payload.index] = location
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage