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

useIonViewWillEnter has default value of state variable upon re-entry of page

我不确定这是否是 Ionic React 4.8.0-rc.05.2.2[= 之间的预期行为18=]

场景

发现

我发现当我回到 Tab1items1 总是变成 [] for Ionic React 5.2.2 。然而,版本 4.8.0-rc.0 没有这种奇怪的行为,这意味着 items1 值在离开并返回 useIonViewWillEnter 中是相同的=44=]Tab1

  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]);