gpt4 book ai didi

ios - SwiftUI 状态变量未更新

转载 作者:行者123 更新时间:2023-11-30 10:25:03 25 4
gpt4 key购买 nike

我有一个 struct User,其爱好列表如下:

struct User: Hashable, Codable, Identifiable, Equatable {
var id: String
var name: String
var hobbies: [String]
}

然后,我使用用户列表作为状态变量生成一个 ListView 。单击 ListView 中的按钮后,新的爱好就会添加到用户的爱好中。

struct UsersListView: View {

@State var users: [User]


var body: some View {

TitleView(titleText: "Friends")
.padding(.leading, 30.0)

List(userDisplayList) { user in
Text(user.name)
Text(user.hobbies.joined(separator: ", "))
Button(action: {self.users[0].hobbies.append("new hobby")}
}
}
}
}
}

但是,当我单击按钮时,用户状态变量不会更改并保持不变。谁能解释一下这是怎么回事?

最佳答案

您在userDisplayList中显示每个用户,而不是在users中。

因此,当您更改 users 中的某些值时,SwiftUI 认为您的 View 中没有任何内容需要更新,因为没有任何内容依赖于 users 变量。

如果您的 userDisplayList 中没有其他逻辑,请尝试使用 List(users) { user in

关于ios - SwiftUI 状态变量未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60108883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com