v-bind.sync不将对象作为道具传递

时间:2019-10-15 15:11:40

标签: javascript vue.js

我通过v-bind.sync将对象作为必需的道具传递给组件,但遇到错误Missing required prop: "filters"

我在这里想念什么? as specified in the documentation:

似乎不起作用
  

v-bind.sync="doc"

     

这会将doc对象(例如title)中的每个属性作为一个单独的属性传递,然后为每个属性添加v-on个更新侦听器。

这是我使用<ListFilters v-bind.sync="filters" />

调用的组件
<template>
  <div>{{ filters }}</div>
</template>

<script>
export default {
  name: 'ListFilters',
  props: {
    filters: {
      type: Object,
      required: true
    }
  }
}
</script>

filters添加默认值会导致组件使用默认值而不是父值。

1 个答案:

答案 0 :(得分:1)

如您提供的突出显示的段落中所述,filters中的任何属性都将作为其自身的属性传递给子组件。因此,它将需要包含另一个filters属性(filters.filters),以便该名称下的子组件可以访问它。要传递父母的财产本身,您可以使用v-bind:filters.sync="filters"