如何解决使用useEffect和asyncstorage数据更新单位列表
我有两个屏幕,第一个屏幕(Entry.js)就像一个表单,我在其中输入一些数据并将其保存在asyncstorage中
const entryVehicleLocal = async ({values}) => {
const currentDay = new Date();
const date = String(currentDay);
const dateSlice = date.slice(4,-15);
const issuedDate = String(dateSlice);
values.issuedDate = issuedDate;
const id = shortid.generate();
const valuesLocal = {
id: id,issuedDate: issuedDate,type: values.type,color: values.color,}
saveCar(JSON.stringify(valuesLocal));
}
const saveCar = async (carJSON) => {
try {
await AsyncStorage.setItem('car',carJSON);
console.log('Logrado');
} catch (error) {
console.log(error);
}
}
然后我有第二个屏幕(Parking.js),我想在此列表中显示保存在异步存储中的数据,但这是我的问题,我试图使用useEffect自动刷新我的数据,但是当我这样做时只是刷新一次,然后再也不更新数据,所以清单仅显示一个元素,我希望在第一个屏幕中输入所有项目
const [carList,setCarList] = useState([]);
useEffect(() => {
getStorage();
},[setCarList]);
const getStorage = async () => {
const newCar = await AsyncStorage.getItem('car');
const car = JSON.parse(newCar);
console.log(car);
setCarList([...carList,car]);
}
希望你能帮助我
解决方法
在单位列表组件中设置额外数据,以便在数据更新时重新呈现,
<FlatList ... extraData={carList}/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。