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.
Il s'agit d'exemples de données stockées dans la variable locations :
const locations = [{name : '1', index : 0}, {name : '2', index : 1}];;
Voici mon code de tranche :
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
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.
Vous êtes là
setLocation
操作中得到Proxy
的问题是因为在搜索特定位置时,你传递了location.index
,但你应该传递location.payload.index
.