如何在不使用SwiftUI中的某些视图{}的情况下初始化视图?

如何在不使用SwiftUI中的某些视图{}的情况下初始化视图?,swiftui,Swiftui,我有一个名为TextView的简单视图,我可以使此视图工作,而无需显式使用某些视图,如以下代码: struct TextView: View { var body = Text("Hello, world!") } struct TextView: View { let stringOfText: String init(stringOfText: String) { self.stringOfText = stri

我有一个名为TextView的简单视图,我可以使此视图工作,而无需显式使用某些视图,如以下代码:

struct TextView: View {

    var body = Text("Hello, world!")
 
}
struct TextView: View {

    let stringOfText: String
    
    init(stringOfText: String) {
        self.stringOfText = stringOfText
    }

    var body = Text(stringOfText)
 
}
现在我喜欢控制字符串,也喜欢下面的代码:

struct TextView: View {

    var body = Text("Hello, world!")
 
}
struct TextView: View {

    let stringOfText: String
    
    init(stringOfText: String) {
        self.stringOfText = stringOfText
    }

    var body = Text(stringOfText)
 
}
使用第二个代码,我得到以下错误:


如果不使用绑定或状态包装器,我怎么可能解决这个问题呢?

我怀疑所有这些都是好的SwiftUI代码样式,但在第一部分之后,您可以使用

struct TextView: View {
    var body: Text

    init(stringOfText: String) {
        body = Text(stringOfText)
    }
}

你为什么要这么做?我不认为这是一个好方法-你试图做的有点违背了常见的SwiftUI实践,可能很难为其他人阅读。我建议您仅用于学习目的。出现错误的原因是
body
不再是一个计算属性,因此,您不能使用init之外的其他属性初始化它。感谢这两个信息,我的大多数问题都有学习和测试的目的。谢谢,这只是为了学习。