Javascript 如何在非字符串的React Native中本地存储数据
我正在寻找一种在React Native中本地存储对象和数据数组的方法。如何做到这一点?查看异步存储的api: 静态setItem(键:字符串,值:字符串,回调?:?(错误:?错误)=>void)Javascript 如何在非字符串的React Native中本地存储数据,javascript,reactjs,react-native,local-storage,Javascript,Reactjs,React Native,Local Storage,我正在寻找一种在React Native中本地存储对象和数据数组的方法。如何做到这一点?查看异步存储的api: 静态setItem(键:字符串,值:字符串,回调?:?(错误:?错误)=>void) 设置键的值,并在完成时调用回调,如果有错误,还会显示错误。返回承诺对象 如何在React Native中本地存储对象和数组?JSON。stringify({})可用于将数据结构转换为字符串 然后使用JSON.parse()将字符串转换回原始数据结构 您可以为此创建一个很好的服务,以消除整个应用程序中的
设置键的值,并在完成时调用回调,如果有错误,还会显示错误。返回承诺对象 如何在React Native中本地存储对象和数组?JSON。stringify({})可用于将数据结构转换为字符串 然后使用JSON.parse()将字符串转换回原始数据结构 您可以为此创建一个很好的服务,以消除整个应用程序中的一些样板代码。在下面的示例中,我使用React Native的内置AsyncStorage API作为“持久”存储工具。根据您的需要进行调整 使用React Native的示例 使用JSON API将对象存储在持久性存储(即React Native的AyncStorage)中,然后检索该值,并将其输出到文本元素中。未经测试 js文件-注意,这个示例对象API提供了一个子集包装器,围绕ReactNative的AsyncStorage API提供的内容,您可以调整它以允许设置多个键,例如,而不是一次设置一个键
//./storage.js
const Storage = {
getItem: async function (key) {
let item = await AsyncStorage.getItem(key);
//You'd want to error check for failed JSON parsing...
return JSON.parse(item);
},
setItem: async function (key, value) {
return await AsyncStorage.setItem(key, JSON.stringify(value));
},
removeItem: async function (key) {
return await AsyncStorage.removeItem(key);
}
};
反应本机组件
//Usage...
import React, {Component} from "react";
import { View, Text } from "react-native";
import Storage from "./storage";
class Foo extends Component {
constructor (props) {
super(props);
this.state = {
greeting: ""
};
}
async componentDidMount () {
await Storage.setItem("someObj", {value: "bar", id: 1});
let obj = await Storage.getItem("someObj");
this.setState({
greeting: obj.value // Will be "bar"
});
}
render () {
return (
<View>
<Text>{this.state.greeting}</Text>
</View>
);
}
}
最近我写了pleex,你可以看看。 您可以用纯json保存数据,也可以使用类型检查功能创建模式等等。
如果你不想担心我建议的JSON.stringify和JSON.parse,那就谢谢你了。从异步存储中取出一些样板文件。@jasonmerino dude,你的评论应该是最好的答案。等等,使用第三方组件应该是yh接受的答案,什么时候几行香草js就可以了/李安。JSON后丢失括号。StrugI化(value)如何存储和下载PDF文件,请考虑提供更多关于如何使用库的信息,而不只是链接到它。
var StorageService = function () {};
StorageService.prototype.get = function (key) {
return JSON.parse(window.localStorage.getItem(key));
};
StorageService.prototype.set = function (key, value) {
return window.localStorage.setItem(key, JSON.stringify(value));
};