SwiftUI中Sheet首次弹出后自动消失的问题求助
SwiftUI中Sheet首次弹出后自动消失的问题求助
嘿各位开发者朋友,我最近碰到一个挺诡异的SwiftUI Sheet问题,想过来求助大家!
情况是这样的:我用.sheet(isPresented:)来从列表里展开支付明细数据,但每次APP刚启动后第一次调用sheet,它弹出来闪一下就立刻消失了,之后再操作sheet就完全正常,和设计的一样。可只要重启APP,这个问题就又会重复出现,真的搞不懂哪里出问题了。
下面是我代码里的相关片段:
struct MainView: View { @Environment(\.managedObjectContext) var context @State private var showPaymentDetails = false @State private var editPaymentDetails = false @State private var selectedPaymentActivity: PaymentActivity? private var paymentDataForView: [PaymentActivity]{ // 这里是准备数据的代码 } var body: some View { List{ ForEach(paymentDataForView) { transaction in TransactionCellView(transaction: transaction) .swipeActions(edge: .trailing, allowsFullSwipe: false, content: { Button(action: { // 这里是触发sheet的操作逻辑 selectedPaymentActivity = transaction showPaymentDetails = true }) { Label("详情", systemImage: "info.circle") } }) } } .sheet(isPresented: $showPaymentDetails) { // 支付详情Sheet视图 PaymentDetailView( payment: selectedPaymentActivity, isPresented: $showPaymentDetails, isEditing: $editPaymentDetails ) .environment(\.managedObjectContext, context) } } }
我怀疑是不是showPaymentDetails这个@State变量的状态在首次启动时被意外重置了?或者和我用的Core Data上下文有关联?有没有朋友遇到过类似的情况,或者能给我一些排查的方向呀?
备注:内容来源于stack exchange,提问作者Grigory Konovalov
相关产品推荐
相关产品推荐

