🙄

NavigationLinkのクロージャーが呼ばれるとき

2024/07/27に公開
 List(time, id: \.self) { time in
        NavigationLink(time.description) {
          // 遷移先
          TimerRouter.initializeTimerModule(with: time)
            .background(.white)
        }
      }

NavigationLinkのクロージャーが最初だけ呼ばれ2回目の遷移時には呼ばれていないことがわかった。

NavigationLinkのクロージャは、遷移先のビューが初めて生成されるときに一度だけ呼ばれます。その後、そのビューがナビゲーションスタックに保持されている限り、再生成されることはありません。

遷移したときに何かしたいとき

onAppearを使って、ビューが表示されるたびに処理を実行する

Discussion