首页 > 解决方案 > SwiftUI 中与 NavigationLink 相关的问题

问题描述

我是 swiftUI 新手,添加以下代码时遇到错误“更新时间超过 5 秒”

@State var studentclass = "default"
@State var studentNumber = "default"
@State var targetedArrayIndex : Int = 1
@State var isActive = false
.
.
.
.
.
NavigationLink(destination: Result(result : results[targetedArrayIndex]), isActive: $isActive) {

    Button(action: {

      if studentclass == "1A" && studentNumber == "01" {targetedArrayIndex = 0}
      if studentclass == "1A" && studentNumber == "02" {targetedArrayIndex = 1}
      if studentclass == "1A" && studentNumber == "03" {targetedArrayIndex = 2}
      .
      .
      .
      .
      self.isLinkActive = true

      }) {.....}

在上面的代码中,我试图从存储在数组中的 json 文件中读取特定学生的结果。我创建了一个下拉菜单,允许用户选择 studentclass 和 studentNumber。因此,我使用 IF/THEN 语句来判断目标学生的数组索引。但是,一旦我将targetedArrayObject 传递给Result.swift(这是另一个显示学生结果的视图),Xcode 就会报错。

为了调试,我尝试将变量targetedArrayObject 替换为0,即

NavigationLink(destination: Result(result : results[0]), isActive: $isActive) {.....}

它可以工作并成功显示结果。所以我对为什么在第一种情况下会出错感到困惑。

标签: iosswiftswiftui

解决方案


推荐阅读