我正在尝试将数组传递到另一个 View 。我想将数组模拟传递到操作条件 View 。
@State var simulation = [Any]()
我知道您看不到所有代码,但下面是如果按下按钮以显示操作条件 View 并在数组加载数据后传入数组的位置,我已检查以确保模拟数组确实具有值在通过之前就在其中,它确实如此。
.sheet(isPresented: $showingOperatingConditions) {
OperatingConditionsView(threats: simulation)
}
这是声明威胁的操作条件 View 。由于某种原因,每次加载 View 时数组都是空的。有人可以帮忙吗?
struct OperatingConditionsView: View {
@State public var threats = [Any]()
}
最佳答案
正如评论所说,您希望将 OperatingConditionsView
的 threats
更改为 @Binding
。然后,您需要传入 $simulation
和 $
(获取其绑定(bind))。
.sheet(isPresented: $showingOperatingConditions) {
OperatingConditionsView(threats: $simulation) /// need a $ here
}
struct OperatingConditionsView: View {
@Binding public var threats: [Any] /// don't initialize with default value
}
或者,如果您不需要更改威胁
来自动更新模拟
,则可以使用简单的非绑定(bind)属性,如 @Joakim Danielson's comment说。
.sheet(isPresented: $showingOperatingConditions) {
OperatingConditionsView(threats: simulation)
}
struct OperatingConditionsView: View {
public var threats: [Any]
}
关于swiftui - 将数组传递给另一个 View SwiftUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67559839/