You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sails.js应用中调用axios后页面元素不更新问题排查

解决Vue中Axios请求成功但页面未更新的问题

看起来你遇到的问题其实是两个小细节没处理好,咱们一步步来解决:

1. 你拿到的是Axios的响应对象,不是实际API数据

Axios的get请求返回的response是一个封装后的对象,里面包含了响应头、状态码和实际的API数据(存在response.data里)。你现在直接把整个response赋值给info,加上初始info是数组,类型不匹配可能导致Vue的响应式更新没正常触发。

修改你的mounted钩子代码:

mounted () {
  axios
    .get('https://api.coindesk.com/v1/bpi/currentprice.json')
    .then(response => {
      // 取response里的实际数据赋值
      this.info = response.data
      console.log(this.info) // 现在可以看到正确的API数据了
    })
}

2. 初始数据类型匹配更合理

你的API返回的是一个JSON对象,而你初始把info设为数组[],虽然Vue允许类型替换,但统一类型会减少奇怪的问题,建议把data里的初始值改成空对象:

data () {
  return {
    info: {} // 改成空对象,和API返回的类型一致
  }
}

额外检查点

  • 确保你引入CDN的顺序是先引入Vue,再引入Axios,不然Vue还没加载完成,axios的调用可能有问题;
  • 如果还是没更新,可以试试在赋值后手动触发响应式更新(不过上面的修改应该已经解决了,这是兜底方案):
this.$forceUpdate()

按照上面的步骤修改后,页面应该能正确渲染出API返回的数据了。

内容的提问来源于stack exchange,提问作者rams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:00:41