typescript - useIonViewWillEnter 在重新进入页面时具有状态变量的默认值
问题描述
我不确定这是否是 Ionic React 4.8.0-rc.0到5.2.2之间的预期行为
设想
我有多个选项卡,其中选项卡 1 有来自 API 调用的项目列表,而选项卡 2 有其他东西。
当我第一次运行应用程序时,Tab 1 将触发 API 调用以填充项目
我想在选项卡之间导航,但选项卡 1 项目应该保持不变
发现
我发现当我回到Tab1 for Ionic React 5.2.2items1
时,总是会变成这样。但是,版本4.8.0-rc.0没有这种奇怪的行为,这意味着导航离开并返回Tab1后的值是相同的[]
items1
useIonViewWillEnter
useIonViewWillEnter(async () => {
console.log(items1);
if (items1.length < 4) {
setItems1([1, 2, 3]);
}
});
4.8.0-rc.0
https://stackblitz.com/edit/ionic-react-tabs-lj2ekk
5.2.2
https://stackblitz.com/edit/ionic-react-tabs-tvtv3c
您可以通过单击Add by 1按钮进行测试,以查看列表增加。然后导航离开和返回。在5.2.2中,列表将[1, 2, 3]
再次返回。
所以我的问题是:这是一个错误吗?如果没有,现在的行为是否不同以及如何解决这个问题?
解决方案
这解决了它
useIonViewWillEnter(async () => {
console.log(items1);
if (items1.length < 4) {
setItems1([1, 2, 3]);
}
},[items1]);
推荐阅读
- php - 更改 symfony/twig url helper 生成的主机(和端口)
- java - Date.toString() 在伦敦的纪元周围增加了一个小时
- spring - 我们在应用程序中同时使用 MassIndexer 和 Hibernate Search 中的手动索引是否正确?
- c# - 如何在瀑布对话框模型中集成 LUIS
- keras - 如何将 Keras 顺序 API 转换为函数式 API
- amazon-web-services - 即使在成功执行“create-invalidation”命令后,AWS CloudFront 也不会失效
- powerbi - 尝试在 Power BI 的数据视图中重新排序列
- python - 无法在 Python 中使用不同的代理发送请求(使用 requests 模块)
- git - 为什么在运行 git reset --hard HEAD 时出现“未跟踪文件”错误?
- javascript - 如何获取网站的元数据以显示链接预览?