javascript - 无法在 setTimeout 回调中以编程方式打开 Vuetify 对话框

标签 javascript vue.js vuejs2 vue-component vuetify.js

默认情况下,Vuetify 对话框的显示由切换 dialog bool 变量值的按钮控制。

我假设以编程方式更改此变量的值将允许显示或隐藏对话框,但事实并非如此。为什么不呢?

这是我的代码:

<template>
  <div>
    <v-dialog v-model="dialog">
      <v-card>
        Dialog content
      </v-card>
    </v-dialog>
  </div>
</template>

<script>

export default {
  data() {
    return {
      dialog: false
    }
  },
  mounted() {
    console.log(this.dialog);
    setTimeout(function() {
      this.dialog = true;
      console.log(this.dialog);
    }, 2000);
  }
}
</script>

控制台在页面加载时显示 false,然后在 2 秒后显示 true。但是对话框还是没有出现...

最佳答案

您应该使用箭头函数 ()=> 作为 setTimeout 回调:

  mounted() {
    console.log(this.dialog);
    setTimeout(()=> {
      this.dialog = true;
      console.log(this.dialog);
    }, 2000);
  }
看笔 Vuetify Dialog example 通过 boussadjra ( @boussadjra ) 在 CodePen .

关于javascript - 无法在 setTimeout 回调中以编程方式打开 Vuetify 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57716862/

相关文章:

javascript - 数据表/TableTools : format data as text when exporting to Excel

javascript - 仅 CSS 轮播

vue.js - 如何在组件中引用子元素?

javascript - 从 vue.js 组件读取复选框值

javascript - Vue - 如何使分页工作作为响应的一部分

vue.js - Vue 2.3 组件中的双向绑定(bind)

javascript - lightSlider 中的 lightGallery - 'onSliderLoad' 的 Slider.prepend() 不工作

javascript - 无法使用 jQuery 更改属性值

docker - 在运行时将 (Docker) 环境变量传递到 Vue/Quasar 应用程序

vue.js - Vuejs如何将父类传递给模板中的子组件