SwiftUI 一些视图到它的根视图

SwiftUI some view to its root view

我想通过更改 @State 变量的状态来触发 SwiftUI 中子视图的更新,因为当我更改 Wallet 对象时它不会单独更新,因为它被定义为 EnvironmentObject。问题是我必须用 environmentObject 初始化视图,它 returns 一些视图,并且不能将它投射到 WalletView,因为它看起来应该如此。

var walletView =  WalletView().environmentObject(Wallet(cards: reminders))

if walletView = walletView as? WalletView{
    walletView.isPresented = !walletView.isPresented
}

如何访问 WalletView 对象?

我试过:

var walletView =  WalletView()
let someWalletView = walletView.environmentObject(Wallet(cards: reminders))

walletView.isPresented = !walletView.isPresented

但是 walletView 似乎没有更新。有什么线索吗?

SwiftUI 方法是在 inside 视图中更改视图状态,据我所知,您将如何处理 WalletView 它可以像在以下(沙哑):

struct WalletView: View {
   ...
   var body: some View {
      _some_internal_view
         .onAppear { self.isPresented = true }
         .onDisappear { self.isPresented = false }
   }
}

我已经通过将变量 isPresented 更改为 @Binding 解决了这个问题,修改它然后触发对子类的更新。