首页 文章

未定义不是对象(评估'RCTAsyncStorage.multiMerge'(React-native-asyncstorage)

提问于
浏览
5

我从这里遇到与react-native-asyncstorage相关的问题:https://facebook.github.io/react-native/docs/asyncstorage.html

当我运行 react-native run-ios 时,出现以下错误:
enter image description here

我使用的是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 回答

  • -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我 .

相关问题