Javascript 我想用expo AsyncStorage将存储持久化为redux,但出现错误

Javascript 我想用expo AsyncStorage将存储持久化为redux,但出现错误,javascript,react-native,expo,Javascript,React Native,Expo,我想在AsyncStore中持久化我的存储。我在创建存储之前获取我的initialState。但它不会等待获取数据并给出错误“传递给createStore的preloadedState参数具有意外的“Object”类型” 这是我的loadState函数 export const _loadState = async () => { try { const serializedState = await AsyncStorage.getItem('store'); if

我想在AsyncStore中持久化我的存储。我在创建存储之前获取我的initialState。但它不会等待获取数据并给出错误“传递给createStore的preloadedState参数具有意外的“Object”类型”

这是我的loadState函数

export const _loadState = async () => {
  try {
    const serializedState = await AsyncStorage.getItem('store');
    if (serializedState === null) {
      return undefined;
    }

    return JSON.parse(serializedState);
  } catch (error) {
    return undefined;
  }
};
这是我的商店

const initialState = _loadState();

const store = createStore(reducers, initialState);
我希望promise必须在createStore()之前解决,但它没有解决。 英语不是我的主要语言,所以如果有你不懂的地方,请告诉我。谢谢

const initialState = await _loadState();
您可以使用wait来确保它在执行之前100%解析

在此处使用try-catch处理错误情况

您可以使用wait来确保它在执行之前100%解析


在此处使用try catch处理错误情况

我在异步函数中尝试了put _loadState(),然后等待_loadState()并返回它,但它给出了新的错误。“增强器(createStore)不是一个函数,增强器(createStore)是Promise的一个实例。”尝试查看状态类型的值是多少我使用
redux thunk
解决了这个问题。状态首先是“未定义”然后是“对象”。我尝试在异步函数中放置_loadState(),然后等待_loadState()并返回它,但它给出了新的错误。“增强器(createStore)不是一个函数,增强器(createStore)是Promise的一个实例。”尝试查看状态类型isI的值。我使用
redux thunk
解决了问题。状态首先是“未定义的”,然后是“对象”。我使用
redux thunk
解决了问题。我意识到我没有遵循
更改状态的唯一方法是发出一个动作,一个描述发生了什么的对象。
。当我的组件挂载时,我调度了一个动作从AsyncStorage获取存储。我使用
redux thunk
解决了这个问题。我意识到我没有遵循
的原则更改状态的唯一方法是发出一个动作,一个描述发生了什么的对象。
。当我的组件装入时,我调度了从异步存储获取存储的操作。