私はreduxには新しく、私はただreduxアプリケーションを作成しようとしています。私が持っている問題は、私のレデューサーが私の店を更新しないということです。私がレデューサーの店を突然変異させると、私の変化が見えます。私はそれが悪い習慣であることを知っているので、私はそれを変更せずに更新しようとしていますが、私はコンソールを見ています。私は国家に何の変化も見ない。減速機が店を更新していない理由を誰かが理解できますか?私のレデューサーが自分の店を更新していないのはなぜですか?
これは私の行動である:ここでは
store.subscribe(() => {
console.log("store changed", store.getState());
});
は私の減速である:
以下const fruitReducer = function(state={
fruits: [
{
"itemName": "banana",
"price": 1.00,
"quantityRemaining": 10
},
{
"itemName": "apple",
"price": 2.00,
"quantityRemaining": 5
},
{
"itemName": "raspberry",
"price": 5.00,
"quantityRemaining": 2
},
{
"itemName": "kiwi",
"price": 3.00,
"quantityRemaining": 15
},
{
"itemName": "pineapple,
"price": 7.00,
"quantityRemaining": 1
},
{
"itemName": "strawberries",
"price": 2.00,
"quantityRemaining": 3
}
]
}, action){
if(action.type === "DEDUCT"){
return Object.assign({}, state, {
fruits: state.fruits.map((fruit, index) => {
action.payload.map((actionFruit) => {
if(fruit.itemName === actionFruit.itemName){
let newQuantity = fruit.quantityRemaining - actionFruit.quantityRemaining;
return Object.assign({}, fruit, {
quantityRemaining: newQuantity
});
}
});
return fruit;
})
});
}
else
return state;
}
は(私は2つが同じことをやって作成した)私のディスパッチャの例である:
store.dispatch({type: "DEDUCT", payload: [
{
"itemName": "banana",
"quantityRemaining": 1
},
{
"itemName": "apple",
"quantityRemaining": 1
},
{
"itemName": "strawberries",
"quantityRemaining": 1
}
]});
'action.fruits.map()'の閉じ括弧の前に 'actionFruit'を返しますか?私はそれを試して、減速機はまだ状態を更新していません。 –