javascript - Vue.js 如何在 Mounted() 之前进行观察,无法从观察中获取数据

标签 javascript vue.js mount watch

async Mounted()部分中,它无法从this.point0检索数据,因为它是在watch之前安装的,对吗?我该如何解决这个问题。

我的目标是每当新的API在watch中发送时更新mounted()中的p1和p0

可以在这里查看我的代码 https://jsfiddle.net/1eahf26q/

  data() {
    return {
      point0: [],
      point1: [],
    };
  },

  watch: {
   async breedKey (newVal, oldVal)  {
       try {
      this.promise = axios.get(new_url);
      const res = await this.promise;

      this.point0 = res.data.data[0].Freq;
      this.point1 = res.data.data[1].Freq;
   }
  },    

  async mounted() {
    await this.promise;

    let p0 = this.point0;
    let p1 = this.point1;
    const datapresent = [p0, p1, this.point1,];
    },
})

最佳答案

从您的代码来看,计算似乎可以完成这项工作。尝试将逻辑从 mounted() 移动到计算为

computed: {
    dataPreset() {
        return [this.p1, this.p2];
    }
 }

每当 p1p2 发生变化时,这都会自动返回更新的 dataPreset

编辑:

据我所知,一旦您的观察者中拥有了 API 数据,您绝对可以初始化您的图表。你的观察者可能会像

watch: {
    selectedTrend: {
      immediate: true,
      handler(to) {
        this.trend = to.Trends;
        this.GetAPIData(to.Trends, to.DT);  //A method to get the sample API DATA
        this.InitializeGraph(); //A method which initializes your graph
      }
    }
  },

https://codesandbox.io/s/twitter-trends-fp0wn 创建的示例沙箱

关于javascript - Vue.js 如何在 Mounted() 之前进行观察,无法从观察中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61211974/

相关文章:

css - VUE 组件忽略 CSS

Docker卷安装问题到已安装的文件夹

javascript - 谷歌地图只显示半屏?

vue.js - Vue-router:我可以在路由元中获取路由参数值吗?

javascript - 浏览器选项卡未激活时的 Jquery 简单 slider 问题

twitter-bootstrap - 将 Bootstrap 添加到 Vue CLI 项目

amazon-web-services - 具有 s3fs 和熔断器的 Amazon S3,传输终端节点未连接

linux - 挂载失败,服务器给出的原因 : Permission denied

javascript - 如何处理包装 View 或 View Controller 中 Ember 组件的操作 "sent"?

javascript - 如何使用画笔选择D3.js中多个组元素中包含的圆圈?