我正在使用react redux将购物车功能添加到我的应用中。我使用将数据存储在本地存储中
store.subscribe(() => saveToLocalStorage(store.getState()));
const saveToLocalStorage = async (state: any) => {
try {
const serialisedState = JSON.stringify(state);
await Storage.setItem("cartState", serialisedState);
} catch (e) {
console.warn(e);
}
}
从本地加载数据使用
const store = createStore(cartItems, loadFromLocalStorage());
const loadFromLocalStorage = async () => {
try {
let data = await Storage.getItem('cartState');
data = data != null ? data : JSON.stringify(initialState)
return JSON.parse(data)
} catch (error) {
console.log('Error Storging data', error);
}
}
当我尝试使用useSelector()钩子获取数据时,我总是得到一个承诺,并且不能从那里获取数据
const state = useSelector( state => { return state });
如何从promise中获取数据或从loadFromLocalStorage()函数中返回实际数据?
2条答案
按热度按时间xpszyzbs1#
我用这个解决了问题
我在Reducers文件夹中创建了index.tsx文件,下面是代码
并在createStore()方法中使用rootReducers,如下所示
我也不知道为什么,但我不得不改变这个箭头函数loadFromLocalStorage到这个,以使它的工作
qc6wkl3g2#
你可以检查存储,如果有这个异步:删除它