【问题标题】:Vue mutating a property that is used as "v-model"Vue 改变了一个用作“v-model”的属性
【发布时间】:2020-04-12 18:09:21
【问题描述】:

很多这样的问题,但我找不到我的方式。我简化了代码来解释我的问题...... 只是想要一个可重用的反馈消息来显示使用 vuetity 和 snackbar 小部件的其余 api 的结果。 在父组件中:

<Feedback :active="hasFeedback" :msg="feedbackMsg" />

反馈组件:

<template>
  <v-snackbar v-model="active" >
    {{ msg }}
    <v-icon @click="active = false">mdi-close-thick</v-icon>
  </v-snackbar>
</template>
<script>
export default {
  components: {},
  props: ["active", "msg"]
};
</script>

我尝试添加计算属性、方法、getter、setter,但总是出错。

【问题讨论】:

    标签: vuejs2 vue-component vuetify.js


    【解决方案1】:

    只需将您的 active 属性复制到组件数据部分的某个属性中,然后在数据部分中使用和更改该属性即可。

    <template>
      <v-snackbar v-model="isActive" >
        {{ msg }}
        <v-icon @click="isActive = false">mdi-close-thick</v-icon>
      </v-snackbar>
    </template>
    <script>
    export default {
      components: {},
      props: {
        active: {
          type: Boolean,
          default: false
        }, {
        msg: {
          type: String
        }
      },
      data () {
        return {
          isActive: this.active
        }
      }
    };
    </script>
    

    【讨论】:

    猜你喜欢
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 2020-07-15
    • 2017-11-01
    • 2017-04-16
    相关资源
    最近更新 更多