【问题标题】:SwiftUI @Binding not updating in childSwiftUI @Binding 未在子项中更新
【发布时间】:2019-11-16 23:24:10
【问题描述】:

在我的主视图中,我有以下变量:

@State private var link = "https://www.google.com"

视图有两个包含变量绑定的子视图:

@Binding var text: String

,初始化如下:Child(text: $link)

子 1 更新变量,父接收更改,但子 2 仍然保留第一个值

【问题讨论】:

  • 请出示您的完整示例代码,因为我无法重现这种情况。

标签: swift swiftui


【解决方案1】:

如果你想让一个视图重建自己,你需要修改它的状态、环境对象或观察对象;这些是视图订阅的唯一内容。如果您只是修改绑定,则视图无法知道它需要重建。您应该将绑定修改为视图的环境、状态或观察对象的副作用。由于您在子视图和父视图之间有一些共享状态,@EnvironmentObject 似乎是做这件事的正确位置。

【讨论】:

  • 谢谢 :) 再问一个问题,一个Binding不能同时标记为State?
  • 这在 SwiftUI 范式中没有任何意义。应该只有一个单一的事实来源。绑定是从状态派生的,因此真相的来源已经存在于原始状态中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-23
  • 2020-04-05
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-29
相关资源
最近更新 更多