Когда я нажимаю на один Chip
, на мой взгляд, он запускает действия во всех чипах. Например, если я нажму на фишку «Дата», я ожидаю выполнения self.viewModel.showDateSelection.toggle()
. Это выполняется, но так же self.viewModel.showTypeSelection.toggle()
и self.viewModel.showPointsSelection.toggle()
. Я не могу понять, почему нажатие на один чип вызовет действия на всех чипах.
Экран
struct EventsScreen: View {
@EnvironmentObject
var viewModel: EventsViewModel
//...
var body: some View {
GeometryReader { geometry in
List {
ZStack(alignment: .top) {
// ...
VStack {
// ...
HStack {
Spacer()
Chip(text: "Dates", action: {
self.viewModel.showDateSelection.toggle()
})
Chip(text:"Type", action: {
self.viewModel.showTypeSelection.toggle()
})
Chip(text: "Points", action: {
self.viewModel.showPointsSelection.toggle()
})
Spacer()
}
}
}
// ...
}
}
}
}
Чип
struct Chip: View {
var text: String
var action: () -> Void
var body: some View {
Button(action: self.action) {
HStack {
Text(text).foregroundColor(Color.white)
Image("drop_down").foregroundColor(Color.white)
}
.padding(EdgeInsets.init(top: 4, leading: 16, bottom: 4, trailing: 16))
.background(Color.black)
.cornerRadius(40)
}
}
}