私はReduxを使用しており、ユーザーがデータを変更している場合には状態にフラグを設定したいと考えています。Reduxレデューサーの州の他の部分へのアクセス
まず私は、サーバーからいくつかのデータと私の店を水和しています:
let serverData = {toggle: true}
const store = configureStore({data: serverData, originalData: serverData})
私はその後、いくつかの減速持っている:私はここでやってみたいことはchanged
設定されている
function data(state = {}, action) {
switch (action.type) {
case TOGGLE:
return {
...state,
toggle: !state.toggle
}
default:
return state
}
}
function changed(state = false, action) {
// This doesn't work; we are actually comparing state.changed.originalData and state.changed.data
return isEqual(state.originalData, state.data)
}
const rootReducer = combineReducers({
data,
originalData: (state={}) => state,
changed
})
をstate.data
がstate.originalData
に等しくない場合は、trueにフラグを設定します。しかし、combineReducersを使用して、私はchanged
レデューサー内の状態のこれらの部分にアクセスすることはできません。
これを行う最も慣用的な方法は何ですか?
この例から何をしようとしているのかは分かりませんが、扱うことが意図されていないタスクに対して 'combinedReducers'を使用しているようです。つまり、問題に関する一般的なコメントは、https:// githubを参照してください。com/rackt/redux/issues/601#issuecomment-133519377 –
ありがとう、私は本当に多くの残念なことに私を助けるとは思わない。 私のユースケースとして、ユーザーがページ上で何かを編集したときに、「あなたは変更を保存していません」という通知を表示したいと思います。その後、コンテンツを元の状態に戻す場合は、このメッセージは表示されなくなります。私はReduxのイディオムでこれを行うのに苦労しています。 2つの別々の状態を比較するために減速機が必要です。 –