[問題] SwiftUI的Missing argument問題

作者: homelife (SKY)   2022-03-11 21:33:15
最近初學SwiftUI,常遇到這個問題,看了一些文章還是不太理解
以我的理解,只要有變數是會在var body: some View當中用到的話,
預設的struct ContentView_Previews就會要求提供變數
舉例:
struct ContentView: View {
@State var testString: String
var body: some View {
Text("\(testString)")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
//Error: Missing argument for parameter 'testString' in call
}
}
上面ContentView()的地方會出錯
但常常testString或是其他會用到的變數是在跑程式的過程才會決定,簡單的解法就是
硬塞一個變數讓它可以Build,像是ContentView(testString = "")
但是有時候用到的變數比較複雜,也許是一個結構較大的Struct,此時這個解法就
沒用了
想請問ContentView一定需要變數先有值的原因是什麼呢?
也想請問如果變數結構複雜但尚未預先有值的話,該怎麼寫才是比較正確的方式呢?
謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com