小编chi*_*ong的帖子

SwiftUI 状态变量未更新

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

struct User: Hashable, Codable, Identifiable, Equatable {
    var id: String
    var name: String
    var hobbies: [String]
}
Run Code Online (Sandbox Code Playgroud)

然后,我使用用户列表作为状态变量生成列表视图。单击列表视图中的按钮时,新的爱好将添加到用户的爱好中。

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")}
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

ios swift swiftui swiftui-list swiftui-state

6
推荐指数
1
解决办法
3732
查看次数

标签 统计

ios ×1

swift ×1

swiftui ×1

swiftui-list ×1

swiftui-state ×1