SwiftUI:如何在ListView中使用绑定变量

SwiftUI:如何在ListView中使用绑定变量,swiftui,Swiftui,我尝试使用ListView显示文本字段,用户可以在其中使用绑定变量输入名称。但我有个错误 此编码显示一个人工作: import SwiftUI struct Person { var firstName: String var lastName: String } class People: ObservableObject { @Published var people = [ Person(firstName: "Joe", lastName: &

我尝试使用ListView显示文本字段,用户可以在其中使用绑定变量输入名称。但我有个错误

此编码显示一个人工作:

import SwiftUI

struct Person {
  var firstName: String
  var lastName: String
}

class People: ObservableObject {
  @Published var people = [
    Person(firstName: "Joe", lastName: "Smith"),
    Person(firstName: "George", lastName: "Todd"),
    Person(firstName: "Emily", lastName: "Wallace"),
    Person(firstName: "Jeffrey", lastName: "Dodd"),
    Person(firstName: "Donny", lastName: "Joseph"),
    Person(firstName: "Mark", lastName: "Ryan"),
    Person(firstName: "Cindy", lastName: "Geller"),
    Person(firstName: "Teresa", lastName: "Kelly"),
  ]
}

struct Basic: View {
  
  @ObservedObject var people = People()
  
    var body: some View {
      VStack {
        Text("My name is \(people.people[1].firstName) \(people.people[1].lastName)")
            HStack {
              TextField("First name", text: $people.people[1].firstName)
              TextField("Last name", text: $people.people[1].lastName)
            }
      }
      .padding()
    }
}
但当我试图将这种编码编入一个列表时,我会出错。以下是我正在使用的编码:

struct Person {
  var firstName: String
  var lastName: String
}

class People: ObservableObject {
  @Published var people = [
    Person(firstName: "Joe", lastName: "Smith"),
    Person(firstName: "George", lastName: "Todd"),
    Person(firstName: "Emily", lastName: "Wallace"),
    Person(firstName: "Jeffrey", lastName: "Dodd"),
    Person(firstName: "Donny", lastName: "Joseph"),
    Person(firstName: "Mark", lastName: "Ryan"),
    Person(firstName: "Cindy", lastName: "Geller"),
    Person(firstName: "Teresa", lastName: "Kelly"),
  ]
}


struct InListView: View {
  
  @ObservedObject var people = People()
  
    var body: some View {
      List(people.people, id:\.firstName) { name in
        VStack {
          Text("My name is \(name.firstName) \(name.lastName)")
              HStack {
                TextField("First name", text: $name.firstName)
                TextField("Last name", text: $name.lastName)
              }
        }
        .padding()
      }
    }
}
错误发生在两个文本字段上。错误为“在作用域中找不到“$name”

如何在ListView中使用绑定变量


谢谢。

这里有一个可能的解决方案

struct InListView:视图{
@ObservedObject var people=人()
var body:一些观点{
列表(0。。