Search code examples
typescriptvue.jsvuetify.jsvuejs3vuetifyjs3

Dialogs are not shown in vuetify 3


I am trying to use vuetify 3.alpha with vue 3. These are my files:

Temp.vue (taken from vuetify example)

<template>
  <div class="text-center">
    <v-dialog
      v-model="dialog"
      width="500"
    >
      <template v-slot:activator="{ on, attrs }">
        <v-btn
          color="red lighten-2"
          dark
          v-bind="attrs"
          v-on="on"
        >
          Click Me
        </v-btn>
      </template>

      <v-card>
        <v-card-title class="text-h5 grey lighten-2">
          Privacy Policy
        </v-card-title>

        <v-card-text>
          Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </v-card-text>

        <v-divider></v-divider>

        <v-card-actions>
          <v-spacer></v-spacer>
          <v-btn
            color="primary"
            text
            @click="dialog = false"
          >
            I accept
          </v-btn>
        </v-card-actions>
      </v-card>
    </v-dialog>
  </div>
</template>

<script>
  export default {
    data () {
      return {
        dialog: false,
      }
    },
  }
</script>

App.vue

<template>
  <v-app>
    <v-main>
        <Temp/>
    </v-main>
  </v-app>
</template>


<script lang="ts">
import { defineAsyncComponent, defineComponent, reactive, ref, Ref, watch, createApp, onMounted} from 'vue'
import Temp from './Temp.vue'

export default defineComponent({
    name: 'App',

    components: {
        Temp
    },

    setup () {

    },
   data () {
      return {

      }
    },
})

</script>

And this is what I get:

enter image description here

The problem is that when I click this button dialog is not shown. Is this my mistake or bug in alpha version?


Solution

  • Even the examples in official vuetify docs which use the activator slot don't work properly.

    You can just add @click.stop="dialog = true" to the button that opens the dialog and remove v-on="on" from it.