0
Reduxを使用してlocalStorageに保存する方法は、特定の状態のみですか?RedStayを使用してlocalStorageに特定の状態のみを保存する
たとえば、次のようにリストの私の状態は減速が定義されている:
const rootReducer = combineReducers({
list: listReducer,
form: formReducer
})
localStorage.js:
export const loadState =() => {
try {
const serializedState = localStorage.getItem('state')
if (serializedState === null) {
return undefined;
}
return JSON.parse(serializedState)
} catch (err) {
return undefined
}
}
export const saveState = (state) => {
try {
const serializedState = JSON.stringify(state)
localStorage.setItem('state', serializedState)
} catch (err) {
// to define
}
}
state = {
companies: [],
currentDisplay: '',
recordNotFound: false,
}
これは私のcombineReducerファイルですブラウザのリロード後、私は欲しいだけですcompanies: [{obj1}, {obj2}, ...]
アレイがプリロードされ、残りの状態がデフォルト値にリセットされる。 currentDisplay: ''
は ''と等しくなります。今
次のようになります。この操作コードの責任:
store.subscribe(() => {
saveState({
list: store.getState().list
})
})
そして、それは明らかに全体のリストを格納... 私は簡単に)SETSTATEを(使用して反応させ、これらのパラメータをリセットしますが、希望ことができると思います適切にこれを行うのが好きです。
これは残念ながら簡単ではありません。私は以前これを試していた。 'リスト:この場合は、ブラウザのリロード後の私の初期状態は次のようになります[{...}、{...}]' と私はそれがこのような構造を持っているしたいと思います: 'リスト:{会社:[{...}、{...}]、nextParam: ''、nextParamm: ''} –
他のパラメータを使用する必要がない場合は、その理由を理解できませんでした。しかし、 'return JSON.parse(serializedState).companies'を実行したい場合は、' loadState'から 'companies'配列だけを返すことができます。 –
はい、私が探していたものです。ありがとう! :) 他のパラメータは例示的なものです。それらはフラグとして機能し、フィルタリングを行う。 –