我将在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')
有解决方案吗?
谢谢
答案 0 :(得分:0)
当我尝试打开多个iOS模拟器时出现此错误。我不确定您的情况是否与我得到的相同。
对我来说,修复方法是??
关闭所有iOS模拟器
专门在模拟器上运行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