Maison  >  Questions et réponses  >  le corps du texte

Explorez les moyens de modifier les valeurs du tableau dans les tranches Redux Store

<p>J'ai un Slice pour stocker des informations de localisation. J'ai déclaré deux fonctions, set et setLocation. La fonction set accepte un tableau d'emplacements et la fonction setLocation doit définir un emplacement. </p> <p>Il s'agit d'exemples de données stockées dans la variable locations : </p> <pre class="brush:php;toolbar:false;">const locations = [{name : '1', index : 0}, {name : '2', index : 1}];</pre> ; <p>Voici mon code de tranche :</p> <pre class="brush:php;toolbar:false;">importer { createSlice } depuis '@reduxjs/toolkit' exporter const locationsSlice = createSlice({ nom : « emplacements », Etat initial: { emplacements : nul, }, réducteurs : { set : (état, emplacements) => state.locations = emplacements.charge utile }, setLocation : (état, emplacement) => state.locations[location.index] = emplacement } }, }) export const { set, setLocation } = emplacementsSlice.actions exporter les emplacements par défautSlice.reducer</pre> <p>L'appel à set(locations) est valide. Mais lorsque location est une valeur dans le tableau locations, je ne peux pas utiliser setLocation(location) pour remplacer un seul emplacement dans le tableau locations. Lorsque j'utilise console.log(state.location) dans la fonction setLocation(), j'obtiens des objets proxy. </p>
P粉197639753P粉197639753438 Il y a quelques jours418

répondre à tous(1)je répondrai

  • P粉248602298

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

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

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

    répondre
    0
  • Annulerrépondre