У меня есть родительский и дочерний компоненты в приложении vue. js. Ребенок передает объект родителю в вызове emit. Иногда ребенок должен передать пустой объект родителю.
Родитель имеет несколько дочерних компонентов. Когда он получает emit от одного из дочерних элементов, содержащих пустой объект, он должен обновить свою переменную "f", чтобы потерять содержимое фильтра этого конкретного дочернего элемента, но при этом включить любое содержимое других дочерних элементов. Как я могу это сделать? Вот мой код, который в настоящее время стирает всю переменную "f", когда любой из потомков передает пустой объект newFilt обратно родителю. Если другие дочерние элементы отправили данные newFilt обратно родителю, эти данные нежелательно больше не присутствуют в родительской переменной «f».
дочерний компонент:
saveValues() {
this.recalc();
// yields something like { city: [ "Chicago", "Rockford" ] }
let newFilt = null;
if (this.selectedValues.length > 0) {
newFilt = {
[this.columnDef.column_name]: this.selectedValues
};
} else {
newFilt = {};
}
this.$emit("filters-changed", newFilt);
}
родительский компонент:
methods: {
onFiltersChanged(newFilter) {
console.log("in onFiltersChanged... newFilter = " + newFilter);
this.f = Object.assign(this.f, newFilter);
console.log(
"this.f after reassigning new filter: " + JSON.stringify(this.f)
);
},