ローカルストレージを使用して特定の状態をreduxに保存しようとしています。そのため、クライアントは毎回データベースにデータを書き込む必要がありません。しかし、データベースの71%だけが毎回ローカルストレージに保存されているようだが、なぜこれが起きているのか分からなかった。ローカルストレージがすべてを保存していません
これは私のローカルストレージコードです(Danのチュートリアルのものを使用しています)。店舗
const persistedState = loadState();
const createStoreWithMiddleware = applyMiddleware(promise)(createStore);
const store = createStoreWithMiddleware(reducers, persistedState);
store.subscribe(()=>{
saveState({
pokemons: store.getState().pokemons
});
});
の設定
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){
///
}
};
コンポーネントは、それがよりaxios呼び出しを行う必要があるかどうかを判断するために、現在のポケモン配列の長さを探すことになっています。
componentDidMount(){
let promises = [];
for(var i = this.props.pokemons.length; i < 10; i++){
promises.push(this.props.fetchPokemons(i));
}
axios.all(promises).then(()=>{
this.props.mapPokemons(this.props.pokemons);
this.setState({
loading: false
})
})
}
ページが更新されるたびに、this.props.pokemonsは、データのみの71%を保有しているようです。ローカルのストレージをクリアしてもう一度redux状態を満たしても、ページを更新するとデータの71%しかそこにありません。
任意の助けをいただければ幸い、
は
保存しようとしているサイズ? –
データの量はどれくらいですか?ローカルストレージには制限があります。しかし、私はあなたがそれらを超えている場合は、ストレージの例外を取得すると思います。 –
と特定のデバイス/ブラウザ?これは携帯ですか? –