あなたはどこかdefaultState
を変異していないと、それはあなたが望む新しい状態を反映している場合、私はこの問題がどうなるかが表示されません。
あなたの例のコードに変更なしで:ここで
はdefaultState
が考えられる突然変異させることができる方法のいくつかの例がありますが、とにかく、すでにこれを実行すべきではない
store.dispatch({type: "RETURN_DEFAULT_STATE"});
store.getState().x = "x";
注意が問題を抱えていますあなたがいる場合。
今、あなたの例のコードの修正版:あなたがある場合
export const defaultState = {
test: 'test
}
function testReducer(state, action) {
switch action.type
case RETURN_DEFAULT_STATE:
return defaultState; // is this ok to do? or need {...defaultState}
default:
return someOtherReducer(state, action);
}
function someOtherReducer(state, action) {
state.x = "x";
return state;
}
注すでにsomeOtherReducer()
はとにかくで何をしてとすべきでないという問題があります。
import {defaultState} from "whatever";
defaultState.x = "x";
store.dispatch({type: "RETURN_DEFAULT_STATE"});
store.dispatch({type: "UNKNOWN"});
出典
2016-03-24 13:09:53
JMM
どうすればdefaultStateを別の場所に変更できますか?あなたは例を挙げることができますか? – Bruce
'store.getState()'で状態を取得して変異させますが、 'defaultState'をどこかで/エクスポートします(これはあなたが投稿したサンプルコードでは明白ではありません)。 – JMM
defaultStateが/ exportを渡すことによってどのように突然変異を起こすことができるかという悪い例を見ていただければ幸いです。現時点では私はそれが起こって見ないが、あなたが言ったようにそれは可能です – Bruce