Вы заменяете ключ новым значением, а не добавляете его.
let newFilterChoice = {
...filterChoice,
[choice.key]: choice.value, // <-- this replaces what used to be there
}
Я думаю, что вы намеревались сохранить ранее установленные значения для ключа, поэтому вам, вероятно, следует сделать следующее:
const oldChoice = filterChoice[e.keyPath[1]];
let choice = {
key: e.keyPath[1],
value: oldChoice ? oldChoice.value : [] // <-- keep existing values
}
choice.value.push(e.keyPath[0])
let newFilterChoice = {
...filterChoice,
[choice.key]: choice.value,
}
Или вы можете избежать создания нового объекта, если в этом нет необходимости, например:
const oldChoice = filterChoice[e.keyPath[1]];
let choice = oldChoice ? oldChoice : {
key: e.keyPath[1],
value: []
}
choice.value.push(e.keyPath[0])
let newFilterChoice = {
...filterChoice,
[choice.key]: choice.value,
}