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)