SwiftUI - 状态布尔数组未附加到 init() 函数中
SwiftUI - State Bool Array not appending in init() function
我正在尝试使用 for 循环在 SwiftUI 中设置 Bool 数组的值,如下所示:
@State var expanded: [Bool] = []
init() {
for i in 0..<5 {
expanded.append(false)
}
print(expanded)
}
但是print语句只打印了[]
,数组好像是空的。谁能解释为什么没有附加数组以及我该如何解决这个问题?
你不能用 State
来做到这一点,而是创建和初始化,比如
@State var expanded: [Bool]
init() {
var values: [Bool] = []
for i in 0..<5 {
values.append(false)
}
print(values)
_expanded = State(initialValue: values) // << here !!
}
或更好
@State var expanded: [Bool] = Array(repeating: false, count: 5)
我正在尝试使用 for 循环在 SwiftUI 中设置 Bool 数组的值,如下所示:
@State var expanded: [Bool] = []
init() {
for i in 0..<5 {
expanded.append(false)
}
print(expanded)
}
但是print语句只打印了[]
,数组好像是空的。谁能解释为什么没有附加数组以及我该如何解决这个问题?
你不能用 State
来做到这一点,而是创建和初始化,比如
@State var expanded: [Bool]
init() {
var values: [Bool] = []
for i in 0..<5 {
values.append(false)
}
print(values)
_expanded = State(initialValue: values) // << here !!
}
或更好
@State var expanded: [Bool] = Array(repeating: false, count: 5)