// Saves to storage as a JSON-string
AsyncStorage.setItem('someBoolean', JSON.stringify(false))
// Retrieves from storage as boolean
AsyncStorage.getItem('someBoolean', function (err, value) {
JSON.parse(value) // boolean false
}
// Or if you prefer using Promises
AsyncStorage.getItem('someBoolean')
.then( function (value) {
JSON.parse(value) // boolean false
})
// Or if you prefer using the await syntax
JSON.parse(await AsyncStorage.getItem('someBoolean')) // boolean false
7条答案
按热度按时间n3h0vuf21#
基于AsyncStorage React-native文档,恐怕你只能存储字符串。
设置key的值,并在完成时调用回调沿着如果有错误,则返回一个Promise对象。
你可能想试着看看第三方的软件包。也许是this one。
2016年2月11日**
谢谢@Stinodes的把戏。
虽然只能存储字符串,但也可以使用JSON对对象和数组进行字符串化以存储它们,然后在检索后再次解析它们。
这只适用于普通的Object示例或数组,但是,从任何原型继承的Object可能会导致意外的问题。
举个例子:
ulydmbyx2#
你只能存储字符串,但是你可以完全用JSON将对象和数组字符串化,并在将它们从本地存储中取出时再次解析它们。
不过,这只适用于普通的
Object
示例或数组。从任何原型继承的对象都可能导致一些意外的行为,因为原型不会被解析为JSON。
不过,布尔值(或任何原始值)可以使用
JSON.stringify
存储。JSON可以识别这些类型,并且可以以两种方式解析它们。
因此:
在获取并解析值(不一定是布尔值,它可以是一个对象,无论哪个满足你的需要)之后,你可以设置到状态或对它做任何事情。
ru9i0ody3#
我在AsyncStorage中的“name”键中设置了值
从键“name”获取值
产出如下:
efzxgjgh4#
我总是围绕AsyncStorage使用/创建一个 Package 器modulee,对进出的数据使用JSON.parse & JSON.stringify。
这样就不需要在业务逻辑中进行JSON.parse和JSON.stringify调用,这样代码看起来更美观。
就像
lyfkaqu15#
but5z9lq6#
我建议你使用react-native-easy-app,通过它可以同步访问AsyncStorage,也可以存储和检索对象、字符串或布尔数据。
omjgkv6w7#
传递一个toString函数给它... AsyncStorage要求键是字符串,而不是数字。
这里:await AsyncStorage.setItem(item.id.toString(),'true');