製作Vue自訂複選框組件的正確方法
P粉135292805
2023-09-02 18:22:50
<p>如何在Vue中建立自訂複選框。當複選框改變時,它應該調用函數。
我得到了錯誤“無法讀取未定義的屬性'id'”
和警告「在執行本機事件處理程序期間出現未處理的錯誤」</p>
<p>自訂複選框:</p>
<pre class="brush:js;toolbar:false;"><template>
<div class="filter">
<input
:ref="id"
:id="id"
type="checkbox"
class="filter-checkbox"
@change="$emit('do', $emit)"
/>
<span>{{ label }}</span>
</div>
</template>
<script>
export default {
name: "Checkbox",
props: {
label: {
type: String
},
isSelected: {
type: Boolean
},
id: {
type: String
}
},
}
</script></pre>
<p>我想在父元件中使用它:</p>
<p>
<pre class="brush:js;toolbar:false;"><Checkbox
v-for="filter of filters"
:key="filter.id"
:label="filter.name"
:id="filter.id"
v-model="filter.selected"
@do="mutuallyExclusive(filter.id)"
/></pre>
</p>
無法重複出現未定義和未處理的錯誤,您需要進一步偵錯。
但是您正在發出emit函數,這很奇怪,而且無論是否選中,值始終為
filter.id
。您可能想要做一些類似以下的動作: