我刚刚使用{{1}开始了一个新的 Managed Expo React Native项目(Expo SDK 35 ,React Native 0.5.9 )。 },但即使是带有redux / redux-persist的新博览会项目,当前也会在下面抛出错误。
使用redux-persist@6.0.0
中的AsyncStorage
,
我们收到错误:
redux-persist:需要config.storage。尝试使用提供的存储引擎之一
react-native
使用import storage from 'redux-persist/lib/storage'
中的AsyncStorage
,
我们收到错误:
[@ RNC / AsyncStorage]:NativeModule:AsyncStorage为空。
使用@react-native-community/async-storage
中的storage
,
我们收到错误:
console.error:“ redux-persist无法创建同步存储。回退到noop存储。”
问题:我们如何在不退出的情况下解决此问题?谢谢!
redux-persist/lib/storage
代码
注意:先前的尝试已被注释掉:
redux-persist
答案 0 :(得分:2)
对于 React Native 下面的代码不起作用。
import AsyncStorage from '@react-native-async-storage/async-storage';
const persistConfig = {
key: 'root',
AsyncStorage
}
因为 persistConfig
需要一个键 storage
低于 persistConfig
适用于 React Native。
import AsyncStorage from '@react-native-async-storage/async-storage';
const persistConfig = {
key: 'root',
storage: AsyncStorage
}
答案 1 :(得分:0)
此导入适用于Web App:
import storage from 'redux-persist/lib/storage'
对于React Native,您应该使用以下导入:
import AsyncStorage from '@react-native-community/async-storage';
import { createMigrate, persistStore, persistReducer } from "redux-persist";
import reducer from "../reducers";
const persistConfig = {
key: 'root',
version: 0,
//...
storage: AsyncStorage
}
const persistedReducer = persistReducer(persistConfig, reducer);
答案 2 :(得分:0)
这可能是图书馆链接问题。
确保您跑步
react-native link @react-native-community/async-storage
我还建议转到您的ios
文件夹并运行pod install
。
如果您不使用Cocoapods,请查看here进行手动链接。
答案 3 :(得分:0)
为我工作