You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NavigationLink修改isActive仍偶尔失效?问题排查与解决

问题现象

修改isActive绑定变量后,NavigationLink未触发跳转,但滚动List到底部时会自动触发导航。

原代码示例:

NavigationView {
      List {
           //.... some views
      }
      NavigationLink(destination: destinationView(), 
                          isActive: $isShowDestination) {
                EmptyView()
      }
 }

问题原因

当List包含大量视图时,滚动到底部会触发类似onAppear的视图生命周期事件,此时才会让NavigationLink的状态生效,导致手动修改isShowDestination变量时无法触发导航。

解决方案

通过添加VStack将NavigationLink置于List外部,确保NavigationLink的状态能及时响应变量变化:

修改后代码示例:

NavigationView {
      VStack {
           List {
               //.... some views
           }
           NavigationLink(destination: destinationView(), 
                          isActive: $isShowDestination) {
                EmptyView()
           }
      }
 }

内容的提问来源于stack exchange,提问作者Mushrankhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:45:54