swiftui - SwiftUI @State var 初始化问题
问题描述
我想通过 a 的方法@State
在 SwiftUI 中初始化 var的值,因此它可以从准备好的字典中获取正确的文本,以便在 TextField 中进行操作。源代码如下所示:init()
Struct
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 不允许您更改 @State
初始化程序,但您可以对其进行初始化。
删除默认值并使用直接_fullText
设置@State
,而不是通过属性包装访问器。
@State var fullText: String // No default value of ""
init(letter: String) {
_fullText = State(initialValue: list[letter]!)
}
推荐阅读
- python-2.7 - 类型错误:“函数”对象不能使用张量流进行下标
- c++ - 使用 Cmake 来做 ./genMakefiles && make -j4
- javascript - CSS 帮助选择某个类的最后一个元素
- reactjs - webpack --optimize-minimize vs -p
- ios - 如何在 Swift4 中获取另一个类的枚举内容?
- terminology - 指定既操作对象又返回值的函数,与前者或后者的函数相反?
- javascript - 如何使用 Axios 一次执行一项删除请求?
- angularjs - Angular Scope 变量将结果从 $http 附加到数据变量而不是覆盖它
- java - Spring Boot 中默认不使用自定义密钥生成器
- javascript - H1 标签不会只加载到我的页面上的 javascript 部分,这是为什么呢?