React Native - 从异步显示数据AsyncStorage.getItems
问题描述:
基本上,在我的应用程序中,人们必须验证他们何时成功应对挑战。 当他们点击确认按钮,我省的“钥匙”:与功能挑战的“价值”:React Native - 从异步显示数据AsyncStorage.getItems
async function validate(challenge_nb)
{
try {
await AsyncStorage.setItem(challenge_nb, 'OK');
} catch (error) {
console.log("error")
}
}
它工作正常。
现在,我想回来的数据,并将其显示在列表中...我不知道如何做到这一点。
我尝试使用各种功能来获取所有的键/值是我救了:
async function getalldatas()
{
AsyncStorage.getAllKeys((err, keys) => {
AsyncStorage.multiGet(keys, (err, stores) => {
stores.map((result, i, store) => {
// get at each store's key/value so you can work with it
let key = store[i][0];
let value = store[i][1];
console.log(value);
});
});
}); }
但我不知道如何显示在我的渲染()函数...而且因为它是异步
其实,我愿做一种:
渲染( 对于每个键/值: 键:值 end_foreach )
非常感谢!!
答
你可以将它存储到一个状态值,然后有条件渲染,p.s.从来没有把这样的东西在你的渲染,让你的组件的方法:
getAllDatas =() => {
AsyncStorage.getAllKeys((err, keys) => {
AsyncStorage.multiGet(keys, (err, stores) => {
this.setState({ stores });
});
});
}
render() {
return (
<View>
{this.state.stores.length && this.state.stores.map(item =>
<Text>{`${item[0]}: ${item[1}`}</Text>)}
</View>
)
}
谢谢! 所以我调用了componentDidMount()方法中的getAllDatas。 但在能够使用状态之前,我必须在我的构造函数中初始化它......我可以在我的this.state中存储什么值= {stores:???在初始化? –
是的,所以只需要以空数组开始:'this.state = {stores:[]}' –