Explorez les moyens de modifier les valeurs du tableau dans les tranches Redux Store
P粉197639753
P粉197639753 2023-08-30 11:35:40
0
1
450
<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粉197639753
P粉197639753

répondre à tous(1)
P粉248602298

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

setLocation: (state, location) => {
   state.locations[location.payload.index] = location
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal