看板 MacDev 關於我們 聯絡資訊
最近初學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一定需要變數先有值的原因是什麼呢? 也想請問如果變數結構複雜但尚未預先有值的話,該怎麼寫才是比較正確的方式呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.235.248.175 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1647005597.A.C99.html
ID3238: 你的State需要初始狀態,不然code怎麼跑 211.76.47.143 03/12 14:08
ID3238: 不然就是初始值用optional type, 設為 nil 211.76.47.143 03/12 14:09
s001582000: 誠心希望SwiftUI推不動 害怕進步的老 27.52.106.44 03/12 14:32
s001582000: 人只會用UIKit 27.52.106.44 03/12 14:32
Fantasylolz: SwiftUI已經慢慢開始變成未來主領了 49.217.139.24 03/13 00:42
Fantasylolz: ,雖然還是需要一段時間完善UIKit才 49.217.139.24 03/13 00:42
Fantasylolz: 能做到的事情,但是未來應該是會取代 49.217.139.24 03/13 00:42
Fantasylolz: 掉UIkit 49.217.139.24 03/13 00:42
tomhawkreal: 對 目前就是UIKit替代元件還不太夠 36.226.148.89 03/31 09:20
tomhawkreal: 等全部到齊 通常就是鼓勵整個換掉 36.226.148.89 03/31 09:20
tomhawkreal: 畢竟SwiftUI的reactive模式比較進步 36.226.148.89 03/31 09:21
tomhawkreal: 而且現在預覽也做的不錯 36.226.148.89 03/31 09:22
tomhawkreal: 老人會頭痛 是因為重新學習需要時間 36.226.148.89 03/31 09:24
tomhawkreal: 萬一case要求 那個時間壓力更大 36.226.148.89 03/31 09:24