我想初始化 a 的值@State
SwiftUI 中的 var 通过init()
的方法Struct
,因此它可以从准备好的字典中获取正确的文本,以便在 TextField 中进行操作。
源代码如下所示:
struct StateFromOutside: View {
let list = [
"a": "Letter A",
"b": "Letter B",
// ...
]
@State var fullText: String = ""
init(letter: String) {
self.fullText = list[letter]!
}
var body: some View {
TextField($fullText)
}
}
不幸的是执行失败并出现错误Thread 1: Fatal error: Accessing State<String> outside View.body
我该如何解决这个问题?预先非常感谢您!
SwiftUI 不允许你change @State
在初始化程序中,但你可以初始化 it.
删除默认值并使用_fullText
to set @State
直接而不是通过属性包装访问器。
@State var fullText: String // No default value of ""
init(letter: String) {
_fullText = State(initialValue: list[letter]!)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)