【发布时间】:2023-04-07 05:10:01
【问题描述】:
我有一张放在 foreach 循环之外的工作表。当我第一次点击 Tapgesture 时,结果是空白的,在我第一次为我点击的每一行获得正确的数据之后。我已阅读 Sheet inside ForEach doesn't loop over items SwiftUI 但它仍然无法正常工作这是我的代码。如果您查看我的代码,我有一个名为 sharePost 的状态变量,它在点击时获取 value.post 的值,然后设置 shareSheet 切换为真。出于某种原因,我无法在第一次点击时获得价值。有没有人对解决这个问题有任何建议
struct TimeLineView: View {
@Binding var model: [MainModel]
@Binding var isMainView: MainViewEnum
@State var shareSheet = false
@State var PostIDState = 0
@State var sharePost = ""
var body: some View {
ZStack
{
let result = model.sorted {
$0.id! > $1.id!
}
ForEach(result) { value in
HStack {
Image("share")
.resizable()
.frame(width: 28, height: 28)
.onTapGesture {
sharePost = value.post
shareSheet.toggle()
}
}
}
}.sheet(isPresented: $shareSheet)
{
ShareView(message:"\(sharePost)" )
}
}
}
【问题讨论】:
-
这是否回答了您的问题stackoverflow.com/a/64798254/12299030? (可能重复)
-
可能与 iOS 14 更改有关 - 请参阅 iOS14 introducing errors with @State bindings。你用什么环境?
-
是的,它回答了我的问题,谢谢。我正在使用 IOS 14。
标签: swift swiftui swiftui-ontapgesture