vue.js - Vuetify Snackbar 在 x 秒后消失,如何防止

标签 vue.js vuetify.js

不知何故,我的 vuetify Snackbar 在 6 秒后消失了,我试图阻止这种情况,但我失败了。这就是我的 vue 组件看起来基本上是一个带有附加按钮的 Snackbar。

<template>
    <div>
        <v-snackbar
            :timeout="timeout"
            :bottom="'bottom'"
            :right="'right'"
            :auto-height="true"
            v-model="googleAnalyticsSnackbar"
        >
            {{ text }}
             <v-btn flat color="pink">
                 <a href="#">test</a>
            </v-btn>
            <v-btn flat color="pink" @click.native="googleAnalyticsSnackbar = false">yes</v-btn>
            <v-btn flat color="pink" @click.native="googleAnalyticsSnackbar = false">no</v-btn>
        </v-snackbar>
    </div>      
</template>

<script>
    export default {

        mounted() {
            if(this.checkCookieStatus() == false || this.checkCookieStatus() == null) {
                this.googleAnalyticsSnackbar = true;
            }
        },

        data: () => ({
            googleAnalyticsSnackbar: true,
            timeout: 0,
            text: 'foo'
        }),

        methods: {
            acceptCookie() {
                this.$cookie.set('cookie_accept_status', true, 1);
            },

            declineCookie() {
                this.$cookie.set('cookie_accept_status', false, 1);
            },

            checkCookieStatus() {
                return this.$cookie.get('cookie_accept_status');
            }
        }

    };
</script>

我在我的主 js 文件中这样调用它:

Vue.component('google-analytics-cookie', require('./components/GoogleAnalyticsCookieToastComponent.vue'));

并将它像这样包含在我的 html 中:

        <google-analytics-cookie></google-analytics-cookie>

但是 Snackbar 在大约 6 秒后就消失了,文档说 0 应该防止这种情况发生,但它不起作用。

最佳答案

问题出在底部和右侧的属性绑定(bind)上:

:bottom="'bottom'"
:right="'right'"

那些应该是 true 或 false 而不是字符串。

它应该像文档中描述的那样工作。示例:

new Vue({
  el: '#app',
  data () {
    return {
      snackbar: true,
      timeout: 0,
      bottom: true,
      right: true
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vuetify/1.3.12/vuetify.min.js" integrity="sha256-MDwft2SRPd5GCJGWRIbkS5l7Gcr3S3vJr7MKpe1Z3+Q=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vuetify/1.3.12/vuetify.min.css" integrity="sha256-h8aOnZm3FeYz5m4z7eI3xc0uJX3l/mF+0i2643O7ieM=" crossorigin="anonymous" />

<div id="app">
  <v-app>
    <v-snackbar :timeout="timeout" v-model="snackbar" :bottom="bottom" :right="right" color="indigo">Hi There <v-btn @click="snackbar=false" dark>Close</v-btn></v-snackbar>
  </v-app>
</div>

关于vue.js - Vuetify Snackbar 在 x 秒后消失,如何防止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53685486/

相关文章:

javascript - eslint - vue/script-indent 忽略对象字段

javascript - Vue react 性问题,需要一些解释

javascript - Vue.js 在组件之间传递数据

php - 如何扩展/修改现有的 Laravel Nova 字段?

Vue.js Axios responseType blob 或 json 对象

vue.js - 如何在Vuetify数据表中同时使用v槽:item and v-slot:item. <名称>?

typescript - Vue/Typescript/Jest - Jest 单元测试语法错误 : Unexpected token import

vue.js - Vuetify - 自定义文本时如何将复选框包含到 v-select

ios - 使用 Vuejs 在 iOS 上安装 PWA 提示

vuetify.js - 如何隐藏数据表 Vuetify 中的行 'no-data'