TypeError:null不是对象(评估'RNKeychainManager.SECURITY_LEVEL_ANY')

时间:2020-06-26 20:30:00

标签: react-native react-native-keychain

我将在RN项目中使用react-native-keychain lib,但似乎无法在本地使用。

RN:0.61.5

react-native-keychain:“ 6.1.1”,

我想这样。

.......

const MEMORY_KEY_PREFIX = '@MyStorage:'
let dataMemory = {}

class MyStorage {
  static syncPromise = null

  static setItem(key, value) {
    Keychain.setGenericPassword(MEMORY_KEY_PREFIX + key, value)
    dataMemory[key] = value
    return dataMemory[key]
  }

  static getItem(key) {
    return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined
  }

  static removeItem(key) {
    Keychain.resetGenericPassword()
    return delete dataMemory[key]
  }

  static clear() {
    dataMemory = {}
    return dataMemory
  }
}
.......

但是我遇到了问题。

TypeError:null不是一个对象(正在评估'RNKeychainManager.SECURITY_LEVEL_ANY')

有解决方案吗?

谢谢

2 个答案:

答案 0 :(得分:0)

当我尝试打开多个iOS模拟器时出现此错误。我不确定您的情况是否与我得到的相同。

对我来说,修复方法是??

  1. 关闭所有iOS模拟器

  2. 专门在模拟器上运行react-native项目。

    • yarn ios --simulator="iphone 8"-将在iPhone 8中运行该应用程序
    • yarn ios --simulator="iphone 11"-将在iPhone 11中运行该应用程序

要列出所有可用的设备模拟器,您可以运行xcrun simctl list devices

PS:软件包仓库中存在一个类似错误的问题,您可能需要看一下:https://github.com/oblador/react-native-keychain/issues/221

答案 1 :(得分:0)

您可以修复它:

在Podfile中设置

pod 'RNKeychain', :path => '../node_modules/react-native-keychain'

use_native_modules!

然后运行

pod install