【问题标题】:Vuejs: watching state variable from componentVuejs:从组件观察状态变量
【发布时间】:2021-05-30 14:25:58
【问题描述】:

我有一个全局变量,在安装组件时使用 API 调用填充。 我还有一个图表组件,如果该变量不为空(即请求是否已完成并且已填充),我想显示它。

目前我正在使用这个来渲染图表:

<template>
  <div class="container">

    <b-chart
        v-if="$store.state.lists[api_key] != null"
        :chartdata="$store.state.lists[api_key]"
        :options="options"
    />
  </div>
</template>

我已尝试将此检查 $store.state.lists[api_key] != null 移动到 computedwatch,以最大限度地减少内联脚本,但我似乎无法让它工作。有人能告诉我怎么做吗?

【问题讨论】:

    标签: javascript vue.js


    【解决方案1】:

    由于null 值被解释为“虚假”,并且假设您有一个“api_key”数据变量,您可以这样使用它:

    computed: {
        chartData() {
            return this.$store.state.lists[this.api_key]
        }
    }
    
    <template>
      <div class="container">
        <b-chart
            v-if="chartData"
            :chartdata="chartData"
            :options="options"
        />
      </div>
    </template>
    

    【讨论】:

      【解决方案2】:

      试试这个:

      computed: {
          canShowChart() {
              return this.$store.state.lists[this.api_key] != null;
          }
      }
      
      <b-chart
          v-if="canShowChart"
          :chartdata="$store.state.lists[api_key]"
          :options="options"
          />
      

      【讨论】:

      • 我可以发誓,我试过了,但没有用。但我刚刚又试了一次,效果很好。谢谢
      • 如果我想在canShowChart 变为真时调用一个函数。我该怎么办?
      • @matt 你可能是对的,我做了一些编辑,因为我第一次发布时犯了一个错误
      • 你可以看计算值canShowChartstackoverflow.com/questions/41067378/…
      猜你喜欢
      • 2018-01-20
      • 1970-01-01
      • 2021-07-15
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多