vue.js - Axios / Json for 循环,如何防止此错误?
问题描述
我的部分代码是这样的,URL 在 for-loop 下。
axios.get(Url).then((response) => { let getJsonAPI = response.data.data.products; if (response.data.data.products.length > 0) { state.jsonGetProductsAPI.push(getJsonAPI); } });
我收到此错误,因为响应不包含 products 属性
只有当“数据”树中有东西时,我才想推送 getJsonAPI。代码按预期工作,但有一个错误,我的强迫症不允许我继续项目:(有什么想法吗?我是新手
解决方案
您可以只使用可选链接 (?.)语法。它是专门为像您这样的情况设计的,因此您可以替换a && a.b && a.b.c
为a?.b?.c
:
axios.get(Url).then((response) => {
const products = response.data.data.products;
if (products?.length) {
state.jsonGetProductsAPI.push(products);
}
});
如果在某些情况下响应不包含data
属性,您也应该选择链接它:
const products = response.data.data?.products;
另请注意,您不需要任何 polyfill,Vue 会为您转换(转换为a && a.b && a.b.c
语法)。
推荐阅读
- python - 如何将“硬币兑换问题”应用于熊猫数据框?
- c# - 如何解决列'empID'不属于表?
- excel - ListOjbect 和 TableObject 的关系
- python - 如何在 Python 中使用带有嵌套 if 语句的 while 循环
- r - 根据 r 中 data.table 中的多个条件创建列
- html - 如何在倒梯形(形状)内写文字?
- ssh - 如何通过 gsutil 复制/scp 文件到谷歌云虚拟机?
- javascript - 如何从不是父或子的另一个组件更改功能组件的状态?
- javascript - 使用单选按钮限制选择(复选框)
- github - 链接到特定的分支、标记或提交,或其中的特定文件,或该文件中的特定行?