我从这里遇到与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需要一个对等方 react-native@^0.47.2但没有安装。你必须安装同行 依赖自己。
奇怪的是它适用于Android,但不适用于iOS和iOS模拟器。
有人可以帮忙吗?
修改
我想补充一些可能有用的要点:
-
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);
}
}
答案 0 :(得分:-1)
如文档中所述:注意:所有本机实现都不支持,因此可能会出错。
你可能正在使用 Reactotron (根据堆栈跟踪)导致这种情况。首先尝试禁用它吗?
您是否拥有AsyncStorage
的自定义实施(例如:https://www.npmjs.com/package/react-native-asyncstorage)?如果是这样,除非有特殊原因要使用它,请将其取下(请在问题中详细说明)
但总的来说,您可以使用React Native Simple Store和update
方法。
或者你可以用lodash.merge编写自己的函数。
如果问题仍然存在,即使注释掉所有AsyncStorage代码,删除可能的自定义依赖项并取消Reactotron,你也找不到自己编写multiMerge的方法,更新你的问题并在这个答案上ping我。