让我们看一下简单的源代码:
import SwiftUI
struct MyView: View {
@State var mapState: Int
init(inputMapState: Int)
{
mapState = inputMapState //Error: 'self' used before all stored properties are initialized
} //Error: Return from initializer without initializing all stored properties
var body: some View {
Text("Hello World!")
}
}
我需要在这里使用init函数来进行一些数据加载,但是有一个问题,@State
变量不能在此处初始化!我该怎么办?
也许这是一个非常简单的问题,但我不知道该怎么做。
非常感谢!
.init
函数解决了我的问题。这比在视图本身上使用.onAppear()
更可取吗? - Manngoinit(initialValue:)
。该初始化程序可能仅用于ABI稳定性:https://forums.swift.org/t/swiftui-state-init-wrappedvalue-vs-init-initialvalue-whats-the-difference/38904 - 在某些情况下可能运行良好,但有时会表现奇怪。 - shiminputMapState
发生更改,您将看不到此视图的更新。 - joshuakcockrell