VSelect - 選擇不適用於 Vuetify 3 中的自訂「項目」插槽
P粉166779363
P粉166779363 2023-08-26 12:35:37
0
1
485
<p>我正在我的 Vue 3 應用程式中使用 Vuetify 3 中的 VSelect,並且我正在嘗試使用項目槽。但我的 VSelect 選項變成不可選取</p> <p>我有這個 VSelect 元素:</p> <pre class="brush:php;toolbar:false;"><v-select v-model="tag" :items="tags" variant="solo" label="Tags" > <template #item="{ item }" > <v-list > <v-list-item :title="item.title" /> </v-list> </template> </v-select></pre> <p>資料中的標籤與標籤:</p> <pre class="brush:php;toolbar:false;">tag: null, tags: [ { title: 'example1', value: 0 }, { title: 'example2', value: 1 }, ],</pre> <p>在輸出中,我選擇了有選項的選項,但選項不可選取:</p> <p>那麼如何使用可選選項為 Vuetify 3 中的 VSelect 元件設定插槽「item」呢? </p>
P粉166779363
P粉166779363

全部回覆(1)
P粉786800174

傳遞給槽的 props 物件包含一個 onClick 回調,您需要綁定它才能使選擇工作:

<template #item="{ item, props: { onClick } }" >
  <v-list-item :title="item.title" @click="onClick"/>
</template>

文件目前有點稀疏,給的型別為 Record。在Vuetify 3.4 中,其他值是keytitlevalueref(來自底層的模板引用)VVritualScroll 用於更新捲軸的高度。

使用帶有 title 屬性的元件時(例如 VListItem),您可以綁定整個 props 物件:

<template #item="{ props }" >
  <v-list-item v-bind="props"/>
</template>

(順便說一句,#item 插槽已將其內容渲染到 v-list 中,無需再次包裝)

這是一個片段:

const { createApp, ref } = Vue;
const { createVuetify } = Vuetify
const vuetify = createVuetify()
createApp({
  setup(){
    
    return {
       tag: ref(null),
        tags: [
          { title: 'example1', value: 0 },
          { title: 'example2', value: 1 },
        ],
    }
  }
}).use(vuetify).mount('#app')
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/vuetify@3.1.6/dist/vuetify.min.css" />
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@5.x/css/materialdesignicons.min.css" rel="stylesheet">
<div id="app" class="d-flex justify-center">
  <v-app>
    <div>
    <v-select
      style="width: 300px;"
      v-model="tag"
      :items="tags"
      variant="solo"
      label="Tags"
    >
      <template #item="{ item, props: {onClick, title, value} }" >
        <v-list-item :title="item.title"  @click="onClick"/>
      </template>
    </v-select>
      
      Selected: {{tag}}
    </div>
  </v-app>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@3.1.6/dist/vuetify.min.js"></script>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!