我从这里遇到与react-native-asyncstorage相关的问题:https://facebook.github.io/react-native/docs/asyncstorage.html
当我运行 react-native run-ios
时,出现以下错误:
我使用的是react-native 0.52.0,这个问题可能是由于react-native-asyncstorage的依赖:
react-native-asyncstorage@1.0.0需要一个peer- react-native@^0.47.2,但没有安装 . 您必须自己安装对等依赖项 .
奇怪的是它适用于Android,但不适用于iOS和iOS模拟器 .
有人可以帮忙吗?
EDIT
我想补充一些可能有用的要点:
-
我使用Expo进行开发,
-
我在代码中评论了每个AsyncStorage,但问题仍然存在,
-
如评论中所述,这是我的AsyncStorage代码的剪切代码
import { AsyncStorage } from 'react-native';
export async function SetItem(strKey, objValue) {
try {
if (typeof(objValue) === 'string') {
await AsyncStorage.setItem(strKey, objValue);
}
else {
await AsyncStorage.setItem(strKey, JSON.stringify(objValue));
}
}
catch(error){
console.log(error);
}
}
1 回答
就像在文档中说的那样: NOTE: This is not supported by all native implementations ,因为这个原因你可能正在运行一个错误 .
它也可能是 Reactotron 你正在使用(根据堆栈跟踪)导致这种情况 . 首先尝试禁用它吗?
你有
AsyncStorage
的自定义实现(如:https://www.npmjs.com/package/react-native-asyncstorage)?如果是这样,除非有特殊原因要使用它,请将其取下(请在问题中详细说明)但总的来说,你可以使用React Native Simple Store,它是
update
方法 .或者你可以用lodash.merge编写自己的函数 .
如果问题仍然存在,即使注释掉所有AsyncStorage代码,删除可能的自定义依赖项并取消Reactotron,你也找不到自己编写multiMerge的方法,更新你的问题并在这个答案上ping我 .