【发布时间】:2023-09-13 14:19:01
【问题描述】:
这是我正在使用的代码的 sn-p:
struct FindFriendsResultsList: View {
@EnvironmentObject var view_model: CreateEventViewModel
@State private var followAll: Bool = false
var body: some View {
VStack {
Toggle(isOn: $followAll) {
Text("Follow all friends")
}
ScrollView {
VStack {
ForEach(self.view_model.contact_list_decoded["contacts"] ?? [], id: \.self) { user in
VStack {
if self.followAll == true {
UserRow(user: user, action: "Success")
}
else {
UserRow(user: user)
}
}
}
}
}
}
奇怪的是,if self.followAll == true 条件永远不会等于 true,除非我在条件中包含 Text(String(self.followAll))。然后切换按预期工作。这看起来像:
if self.followAll == true {
Text(String(self.followAll))
UserRow(user: user, action: "Success")
}
else {
UserRow(user: user)
}
我只是不想包含 Text(String(self.followAll)),并且希望此条件仅与内部的 UserRow 一起使用。
编辑:这里有更多代码。我正在从中剥离任何 UI,并尝试提供尽可能具体的示例。:
struct UserRow: View {
@State var action: String = "AddFriend"
var body: some View {
HStack {
if action == "AddFriend" {
Image("addfriendicon")
}
else if action == "Success" {
Image("Successicon")
}
}
}
}
【问题讨论】:
-
你能多发一些上下文吗?可能是整个视图,还是整个视图本身?
-
当然@kid_x 我刚刚更新了帖子,试图准确展示我正在处理的内容。