在 SwiftUI 中使用 Map 时在视图更新期间获取修改状态
Posted
技术标签:
【中文标题】在 SwiftUI 中使用 Map 时在视图更新期间获取修改状态【英文标题】:Getting Modifying State During View Update When Using Map in SwiftUI 【发布时间】:2021-12-11 21:58:51 【问题描述】:我有以下代码:
struct ContentView: View
@State private var defaultRegion: MKCoordinateRegion = MKCoordinateRegion(center: CLLocationCoordinate2D.init(latitude: 29.726819, longitude: -95.393692), latitudinalMeters: 100, longitudinalMeters: 100)
var body: some View
Map(coordinateRegion: $defaultRegion)
.padding()
每当我运行此代码时,我都会收到以下警告:
[SwiftUI] Modifying state during view update, this will cause undefined behavior.
我能做什么?
【问题讨论】:
【参考方案1】:由于我不关心是否阅读该区域,我发现类似这样的内容会抑制警告。我把它留给知识渊博的人来确定它是否是正确的解决方案:
struct ContentView: View
var defaultRegion: MKCoordinateRegion = MKCoordinateRegion(center: CLLocationCoordinate2D.init(latitude: 29.726819, longitude: -95.393692), latitudinalMeters: 100, longitudinalMeters: 100)
var body: some View
Map(coordinateRegion: Binding.constant(defaultRegion))
.padding()
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于在 SwiftUI 中使用 Map 时在视图更新期间获取修改状态的主要内容,如果未能解决你的问题,请参考以下文章
在 SwiftUI 中从 Observable 视图模型初始化 Map
Swiftui @EnvironmentObject 在视图中更新