首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuetify snackbar条件

Vuetify snackbar条件
EN

Stack Overflow用户
提问于 2019-10-24 00:35:40
回答 1查看 4.8K关注 0票数 3

是否有人知道如何根据服务器的应答结果显示快照。

例如,如果提交是好的,显示成功绿色快餐店与成功消息,但如果我有一个错误,我需要显示一个红色错误快餐店与一个错误信息的绑定。

我想我需要通过一种方法来显示它。我只想在一个像这样的小吃店里这样做。

代码语言:javascript
复制
<v-snackbar
    :color = "color" 
> {{text here}}
</v-snackbar

服务器post示例

代码语言:javascript
复制
http.post(apiAdresse, objectToPost)
   .then(() => {
     something to do here})
   .catch(error => {
     console.log(error)};)

编辑代码:

代码语言:javascript
复制
        <v-snackbar
                :color="snackbar.color"
                v-model="snackbar.show">
            <v-icon class="snackIcon">{{snackbar.icon}}</v-icon>
            {{ snackbar.message }}
            <v-btn
                    dark
                    text
                    @click="snackbar = false"
            >
                Close
            </v-btn>

        </v-snackbar>

当我点击关闭btn

代码语言:javascript
复制
Error in v-on handler: "TypeError: Cannot use 'in' operator to search for 'show' in false"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-24 00:46:59

我会这样做:

代码语言:javascript
复制
<template>
    <!-- Set the color, v-model and message values in the data prop -->
    <v-snackbar :color="snackbar.color" v-model="snackbar.show">
        {{ snackbar.message }}
    </v-snackbar>
</template>

<script>
    export default {
        data: () => ({
            snackbar: {
                show: false,
                message: null,
                color: null
            }
        }),
        methods: {
            submitAction() {
                http.post(apiAdresse, objectToPost)
                .then(() => {
                    this.snackbar = {
                        message: 'Your success message',
                        color: 'success',
                        show: true
                    }
                })
                .catch(error => {
                    this.snackbar = {
                        message: 'Your error message',
                        color: 'error',
                        show: true
                    }
                })
            }
        }
    }
</script>

获得Error in v-on handler: "TypeError: Cannot use 'in' operator to search for 'show' in false"是因为您试图将snackbar对象更新为布尔值。你应该这样做:

代码语言:javascript
复制
<v-btn dark text @click="snackbar.show = false">
   Close
</v-btn>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58532615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档