【问题标题】:Vue show compopent always if once logic true如果一旦逻辑为真,Vue总是显示组件
【发布时间】:2020-10-06 21:26:52
【问题描述】:

如果逻辑一次为真,我希望始终显示 compopent。

我尝试添加和设置新的 var ,但得到“canShowAlways”计算属性中的意外副作用。

我如何在 vue 中做到这一点?

<mycomp v-if="canShowAlways" />

    data: function(){
      return {
        a: 0,
        b: 4,
        c: 1
        d: 2,
        isAlwaysShow: false
      }
    }
    computed: {
        canShowAlways() {
            if(this.isAlwaysShow){
                return true;
            }
            var isLast = this.a && this.b || this.c && this.d;
            if(isLast){
                this.isAlwaysShow = true;
                return true;
            }
            return false;
        },

【问题讨论】:

  • 这看起来有点奇怪,你的计划是什么,你想要达到什么目标
  • 你不应该在计算函数中赋值。为canShowAlways 使用观察者。

标签: vue.js vuejs2 vue-component


【解决方案1】:

一般来说,您不应该编辑计算属性中的其他数据。

this.isAlwaysShow = true; 这一行很可能是导致您在代码中看到的错误的原因。

如果您真的想坚持上面的代码,那么一个快速的解决方案是调用一个可以更改this.isAlwaysShow 值的方法。

否则,您将设置watch,如提到的here

很可能有更好的方法来处理您正在尝试做的事情,但需要提供更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 2015-08-19
    • 2023-03-14
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 2018-02-24
    相关资源
    最近更新 更多