javascript - Axios 获取 API 调用导致意外行为
问题描述
下面我的 CodePen 是应该发生的事情的一个工作示例。那里的一切都按预期工作。我在那里使用硬编码数据。
CodePen:https ://codepen.io/anon/pen/XxNORW?editors=0001
硬编码数据:
info:[
{
"id": 1,
"title": "Title one",
"category_data": {
"2": "Team",
"7": "Queries"
}
}
],
问题:
当我用 AXIOS get 调用替换硬编码数据时,CodePen 复选框无法按预期工作。All复选框已正确选中,但其余复选框未选中。
我假设,加载 API 的轻微延迟是造成这种情况的原因。
mounted() {
this.getData();
},
methods: {
getData: function() {
axios
.get('https://EXAMPLE.com/API/')
.then(response => {
this.info = response.data
this.dataReady = true
})
.catch(error => {
console.log(error)
this.errored = true
})
.finally(() => this.loading = false)
}
},
在数据准备好之前,我不会加载前端。
我该如何解决这个问题?
谢谢。
解决方案
在您的演示中,调用select()
断言“全选”功能(选中所有复选框),但这些复选框在解决之前不可用,getData()
因此只需移动:select()
getData()
async mounted() {
await this.getData();
this.select();
},
methods: {
async getData() {
const {data} = await axios.get(/* URL TO API DATA */);
this.info = data;
},
// ...
}
推荐阅读
- python-3.x - TensorFlow tf.function 和 jit_compile
- html - '无法在 Nuxt.js 应用程序中播放音频文件'
- reactjs - ReactJS/Typescript Axios 获得 HTTP 支持的跨 CORS
- c++ - 如何将元组转换为初始化列表
- java - 如何使用 JPA Buddy 在多对多关系中自动创建关联(或联结)表
- solidity - 如何制作基于 APY% 输入的值
- ebay-api - eBay Sold URLS 中的 ?hash=item URL 参数是什么意思?
- kubernetes - 为什么删除 Kubernetes 命名空间需要这么长时间?
- python - 如何在 Networkx 图上添加箭头
- javascript - 还可以通过重置按钮更改自定义滑块的渐变