如何处理swiftui@State可选展开
在swiftui中,我有一个状态变量count,它是可选的,在当前的工作表中,我打开可选的并显示Detailview,但它似乎从未在那里出现过 你知道为什么不去那里吗 它似乎从来没有击中 DetailView(计数:num)如何处理swiftui@State可选展开,swiftui,state,optional,Swiftui,State,Optional,在swiftui中,我有一个状态变量count,它是可选的,在当前的工作表中,我打开可选的并显示Detailview,但它似乎从未在那里出现过 你知道为什么不去那里吗 它似乎从来没有击中 DetailView(计数:num) 问题不是可选的展开。 问题在于,在计算主体时,您正在执行更新以计数。要克服此问题,请使用我的解决方案: 如果该解决方案不适用于您,请告诉我 如果您真的必须使用@State var count,您可以使用此变通方法(不推荐) Di
问题不是可选的展开。 问题在于,在计算主体时,您正在执行更新以计数。要克服此问题,请使用我的解决方案: 如果该解决方案不适用于您,请告诉我 如果您真的必须使用@State var count,您可以使用此变通方法(不推荐)
DispatchQueue.main.async {
self.count = 5
}
您可以使用工作表(项目:内容:)
而不是工作表(显示:内容:)
:
请注意,项
必须符合可识别
,因此您需要使用自己的结构或创建一个Int
扩展:
extension Int: Identifiable {
public var id: Int { self }
}
struct ContentView: View {
@State var count: Int?
var testArr = [1, 2, 3, 4, 5]
var body: some View {
NavigationView {
List(testArr.indices) { index in
Text("row num \(index)")
.onTapGesture {
self.count = 5
}
}
.sheet(item: $count) { count in
DetailView(count: count)
}
.navigationBarTitle("Your Reading")
}
}
}
extension Int: Identifiable {
public var id: Int { self }
}