Donc, je suis nouveau à Redux Toolkit.
J'ai mon réducteur
const userAuthSlice = createSlice({
name: "userAuth",
initialState: {
token: '',
},
reducers: {
setToken: (state, action) => state.token = action.payload.test,
},
});
Et j'ai ma commande d'expédition
<button
value={text.sign_in.submit}
onClick={() => dispatch(userAuthSlice.actions.setToken({test:"test"}))}
/>
et comme j'appuie sur le bouton ce que je reçois, c'est cette erreur:
Entrez la description de l'image ici
J'ai tout isolé pour être sûr que c'est le problème et rien d'autre.
Pourquoi cette erreur apparaît-elle?
Points pour en savoir plus sur IMMER
immer
retournera le brouillon finalisé de toute façonrecipe
fonction, puis selon le point 1, la nouvelle valeur de retour remplacera l'étatMaintenant venir répondre à la question. Ceci est votre fonction de réduction
(state, action) => state.token = action.payload.test
Cette fonction fait deux choses,
1. état de modification
[.____] 2. Action de retour.Payload.test
[.____] Cela enfreint le point 4 et donc l'erreur de Immer Bibliothèque
dans ce cas particulier, l'intention n'est que de modifier l'état, nous devons donc annuler le retour existant avec void
setToken: (state, action) => void(state.token = action.payload.test)
Cependant, Immer Bibliothèque recommande l'utilisation du bloc de code pour assurer la cohérence de la base de code importante, ce bloc de code renvoie implicitement indéfini
setToken: (state, action) => { state.token = action.payload.test }