重新进入页面时,useIonViewWillEnter 具有状态变量的默认值

问题描述

我不确定这是否是 Ionic React 4.8.0-rc.05.2.2

间的预期行为

场景

  • 我有多个选项卡,其中选项卡 1 包含来自 API 调用的项目列表,而选项卡 2 包含其他内容

  • 当我第一次运行应用程序时,Tab 1 将触发 API 调用以填充项目

  • 我想在标签之间导航,但标签 1 项目应该保持不变

发现

我发现当我回到 Tab1 进行 Ionic React 5.2.2 时,items1 总是变成 []。但是,版本 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

您可以通过单击按 1 添加按钮来查看列表是否增加进行测试。然后导航离开和返回。在 5.2.2 中,列表将再次返回 [1,3]

所以我的问题是:这是一个错误吗?如果没有,现在的行为是否有所不同以及如何解决此问题?

解决方法

这就解决了

useIonViewWillEnter(async () => {
    console.log(items1);
    if (items1.length < 4) {
      setItems1([1,2,3]);
    }
  },[items1]);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...