J'utilise React et Redux et j'essaye un exemple simple.
Si j'ai cliqué sur le bouton, le nombre devrait augmenter de 1.
Mais lorsque je clique ici actuellement sur le bouton, vous verrez l'erreur suivante, itemAction.js p> réducteur.js p> typeError: item.map n'est pas une fonction code>. Y a-t-il un problème avec mon code?
4 Réponses :
Vous avez besoin d'un cas par défaut pour le réducteur.
case PLUS_ITEMS:
return {
item: state.item.count++
}
}
There is no state.item.count in your state. state.item is an array. Fix this and see if that takes care of that error.
donc j'ai essayé {item.map (({compteur}) => (
state.item [0] .Count ++ devrait fonctionner, s'il n'y a qu'un seul objet dans votre réseau d'articles. P>
Comme Anthony K dit ci-dessous, State.item est un tableau, dont le premier élément est comptent
réducteur.js
Établissez l'élément en tant qu'objet au lieu d'un tableau et de la propagation de l'état. P>
const initialState = {
item:{
count:0
},
}
export default function (state = initialState, action) {
switch(action.type){
case GET_ITEMS:
return {
...state
}
default:
return state;
case PLUS_ITEMS:
return {
...state,
item: state.item.count++
}
}
}
Carte itérats sur tableau, pas de chiffres
state.item.count ++ code> mutate l'état interdit.