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

新手上路,请多包涵

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

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

没问题,但是:

 AsyncStorage.setItem('key', false);

不工作..

原文由 Hasen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 503
1 个回答

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

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

设置键的值并在完成时调用回调,如果有任何错误,则一起调用。返回一个 Promise 对象。

您可能想尝试查看第三方软件包。也许 这一个

编辑 2016 年 2 月 11 日

感谢@Stinodes 的诀窍。

虽然您只能存储字符串,但您也可以使用 JSON 对对象和数组进行字符串化来存储它们,然后在检索到它们之后再次解析它们。

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

一个例子 :

 // 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
    }
})

原文由 G. Hamaide 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题