在SwiftUI中使用地图时在视图更新期间获取修改状态



我有以下代码:

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.

我能做什么?

由于我根本不在乎阅读该区域,我发现这样的东西抑制了警告。我把它留给更有知识的人来确定它是否是正确的解决方案:

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()

}

}

最新更新