【发布时间】:2018-05-30 05:33:57
【问题描述】:
我正在使用异步存储来存储值,但是在检索它时会覆盖我之前保存的值,但它没有显示。 在获取数据时仅显示最新记录。 每次单击时,我都会在平面列表中有一些按钮我将数据存储在一个数组中,我想检索所有数据,但它只显示最新记录。
First.js - 保存数据
saveData= async (item)=>{
console.log("We are in SAve function")
try{
var product= [];
var items={
id: item.id,
title: item.title,
image: item.image,
price: item.price,
description:item.description,
categoryTitle: item.categoryTitle,
}
AsyncStorage.getItem("Cart",(err,res)=>{
if(!res){
alert("empty cart")
AsyncStorage.setItem("Cart",JSON.stringify([product]))
}
else{
product.push(items);
AsyncStorage.setItem("Cart",JSON.stringify(product),
console.log("item added" +JSON.stringify(product)));
alert("item added to cart")
}
})
}
catch(error)
{
alert(eror)
}
}
获取数据-
componentWillMount(){
AsyncStorage.getItem("Cart",(err,res)=>{
console.log("res value is------" +JSON.stringify(res))
if(!res)
{
alert("your cart is empty")
}
else{
this.setState({cartItems:JSON.parse(res)},
console.log(JSON.stringify(this.state.cartItems))),
alert(JSON.stringify("get Cart items"+JSON.stringify(this.state.cartItems)));
}
});
}
_renderItem({item}){
console.log("we are in _renderItem function" )
console.log(item.id)
return this.state.cartItems.map((item,id) =>{
return(
<View style={{flex:1, flexDirection:'row'}}>
<Image style={{height:90,width:90}} source= {{uri: item.image}} />
<View style={{flexDirection:'column'}}>
<Text> {item.id} </Text>
<Text> {item.title} </Text>
<Text> {item.categoryTitle} </Text>
</View>
</View>
);
});
}
【问题讨论】: