【发布时间】:2021-12-30 09:55:42
【问题描述】:
我正在为我的过滤器创建一个子组件,当用户更改一些输入值时应该更新它......问题是当我将新数据发送到父组件时,手表不会触发!请检查我的代码,看看我哪里出错了...
父组件
定义组件
<FiltersComponent v-model:filters="filters" />
定义监视表达式
watch(filters, (value) => {
getAccounts(value);
});
子组件
const emits = defineEmits(['update:filters']);
const props = defineProps({
filters: {
type: Object,
default: () => ({
...
}),
required: true,
},
});
function updateFilters(newValue, property) {
console.log('updateFilters', newValue, property);
emits('update:filters', { ...props.filters, [property]: newValue });
}
注意:console.log 正确打印 newValue 和属性,但手表永远不会发生!
PS:我也在父组件内部使用了v-on:update:filters="getAccounts(filters)"。但是过滤器数据没有在函数调用中更新...
【问题讨论】:
标签: javascript vue.js vuejs3