[英]SwiftUI - How do I read a string array out of a Identifiable struct
我正在嘗試遍歷我在 Identifiable Struct 中創建的字符串數組。 我可以讀取數組的單個記錄,但是當我將它放在 foreach 循環中時,我無法遍歷所有記錄。 基本上我想顯示所選人員擁有的所有資產。 DetailView 結構中的 Foreach 是問題所在。 請參閱下面的圖像和代碼。
import SwiftUI
struct Person :Identifiable {
var id = UUID()
var name: String
var assets: [String]
}
extension Person {
static func all() -> [Person] {
return [
Person(name: "John", assets: ["Car1", "Car2"]),
Person(name: "Peter", assets: ["House1", "Car3"])
]
}
}
var persons = Person.all()
struct DetailView: View {
var person1: Person
var body: some View {
List{
Text("NAME")
.bold()
Text(person1.name)
Text("ASSETS")
.bold()
ForEach(person1) {asset in
Text(person1.assets[asset1])
}
.navigationBarTitle(Text(person1.name))
}
}
}
struct ContentView: View {
var body: some View {
NavigationView{
List{
ForEach(persons) {person in
NavigationLink(destination: DetailView(person1: person)) {
Text(person.name)
}
}
}
.navigationBarTitle("Person assets")
.border(Color.black, width: 1)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
嘗試這個
import SwiftUI
struct Asset : Identifiable, Hashable {
var id = UUID()
var text : String
init(_ text : String) {
self.text = text
}
}
struct Person :Identifiable {
var id = UUID()
var name: String
var assets: [Asset]
}
extension Person {
static func all() -> [Person] {
return [
Person(name: "John", assets: [Asset("Car1"), Asset("Car2")]),
Person(name: "Peter", assets: [Asset("House1"), Asset("Car3")])
]
}
}
var persons = Person.all()
struct DetailView: View {
var person1: Person
var body: some View {
VStack {
Text("NAME")
.bold()
Text(person1.name)
Text("ASSETS")
.bold()
List (person1.assets, id: \.self) { asset in
Text(asset.text)
}
.navigationBarTitle(Text(person1.name))
}
}
}
struct ContentView: View {
var body: some View {
NavigationView{
List{
ForEach(persons) {person in
NavigationLink(destination: DetailView(person1: person)) {
Text(person.name)
}
}
}
.navigationBarTitle("Person assets")
.border(Color.black, width: 1)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.