Heim  >  Fragen und Antworten  >  Hauptteil

Entdecken Sie Möglichkeiten zum Ändern von Array-Werten in Redux Store-Slices

<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粉197639753P粉197639753438 Tage vor417

Antworte allen(1)Ich werde antworten

  • P粉248602298

    P粉2486022982023-08-31 09:48:51

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

    setLocation: (state, location) => {
       state.locations[location.payload.index] = location
    }

    Antwort
    0
  • StornierenAntwort