1
ステートオブジェクトをデフォルト値にリセットするRESET突然変異があります。見つけた解決策はstate = defaultState
の代わりにObject.assign(state, defaultState)
になります。特定のプロパティの=
で影響を受けるが、状態オブジェクト全体では機能しません。VUEX:なぜ状態オブジェクト全体に影響を与えることができないのですか?
は仕事:
RESET: (state) => {
Object.assign(state, defaultState);
}
が動作しない:
RESET: (state) => {
state = defaultState;
}
このように状態を変更するのは危険ですか?あなたは状態オブジェクトをコピーして、それを変形し、新しい状態を返すべきではありませんか?また、おそらく明示的にオブジェクトのディープコピーを行う必要があります。私はFluxの実装があなたのためにそれを行うかどうかは分かりません。 https://redux.js.org/docs/recipes/reducers/ImmutableUpdatePatterns.html - これはReduxの投稿ですが、ベストプラクティスはそのまま適用されます。 – ethane
私は、Vueデバッガツールで突然変異がそのように呼び出されたときに影響を受ける特定のプロパティを見ることができるので、不変のアスペクトはvuex librairieによって内部的に処理されると思います! CF https://vuex.vuejs.org/en/mutations.html –