私はreduxでアプリケーションをビルドしています。私は、アクションがディスパッチされた後で私のビューが更新されない、reduxのドキュメントで概説された問題に遭遇しました。ドキュメンテーションは、あなたが状態を変更したときにこれが起こることを示唆しています。唯一の問題は、私は私がやったことは、変異と考えられているか理解していない、次のとおりです。なぜこのレデューサーはレビュックスを使用してビューの変更をトリガーしませんか?
case AppConstants.UPDATE_ALL_TIMERS:
return action.timers
これは、しかし、作業を行います。
それだけの値を返すということですどのようにcase AppConstants.UPDATE_ALL_TIMERS:
let newState = state.map((timer, index) => {
return action.timers[index]
});
return newState
あなたの新しい州としての行動は、州を突然変異させると考えられていますか?私は何が欠けていますか?
以下は私のレデューサーの全体で、UPDATE_ALL_TIMERSより前の2つのケースは正常に機能しました。レデューサーはコンビネーションレデューサーと共に使用されており、オブジェクトの配列であるタイマースライスのみを受け取ります。
export default function(state = initialState, action) {
switch(action.type) {
case AppConstants.ADD_TIMER:
let newState = [...state, action.timer];
return newState
case AppConstants.UPDATE_TIMER:
newState = state.map((timer, index) => {
if(index == action.timerID) {
const updatedTimer = {
...timer,
elapsed: action.elapsed
}
return updatedTimer
}
return timer
});
return newState
case AppConstants.UPDATE_ALL_TIMERS:
newState = state.map((timer, index) => {
return action.timers[index]
});
return newState
default:
return state
}
}
あなたの減速のより多くを投稿することができ、そしておそらくアクションの作成者を上の変更されたかどうかを確認するために、深いチェックをしませんか? – markerikson
はい、より多くの文脈がなければ、なぜこれが問題になるのかは明らかではありません。 'timer'値は何か混乱していますか? –
私のレデューサーの全体を追加するように編集しました – hmlee