[问题] 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