ios - React Native AsyncStorage 存储字符串以外的值

标签 ios local-storage storage react-native

有没有办法用 AsyncStorage 存储字符串以外的值?例如,我想存储简单的 bool 值。

AsyncStorage.setItem('key', 'ok');

没问题,但是:

AsyncStorage.setItem('key', false);

不起作用..

最佳答案

基于AsyncStorage React-native docs ,恐怕你只能存储字符串..

static setItem(key: string, value: string, callback?: ?(error: ?Error)
> => void) 

Sets value for key and calls callback on completion, along with an Error if there is any. Returns a Promise object.

您可能想尝试看看第三方软件包。也许this one .

编辑 02/11/2016

感谢@Stinodes 的技巧。

虽然只能存储字符串,但也可以将对象和数组用JSON字符串化来存储,取出来再解析。

这仅适用于普通对象实例或数组,但是,从任何原型(prototype)继承的对象可能会导致意外问题。

一个例子:

// Saves to storage as a JSON-string
AsyncStorage.setItem('key', JSON.stringify(false))

// Retrieves from storage as boolean
AsyncStorage.getItem('key', (err, value) => {
    if (err) {
        console.log(err)
    } else {
        JSON.parse(value) // boolean false
    }
})

关于ios - React Native AsyncStorage 存储字符串以外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596187/

相关文章:

objective-c - NSURLConnection 与 NSRunLoopCommonModes

ios - 如何使用 Xcode 机器人在模拟器上运行 UIAutomation - 奇怪的行为

python - 使用带 apns 的沙盒服务器

javascript - 获取另一个站点的本地存储数据

c++ - .bss 部分零初始化变量是否占用 elf 文件中的空间?

安卓永久存储

c++ - C++中对象是存储位置还是值?

ios - 无法使用类型为 '()' 的参数列表调用函数

html - localStorage 的 key 长度是否有限制?

javascript - 在 Javascript 中将文本条目保存到本地存储