问题描述
uniapp H5开发中在读取某个数组的长度时出现如下错误:[system] TypeError: Cannot read property ‘length’ of undefined
这并不会影响到对移动端H5项目的开发。
解决问题
模拟出现错误的代码:
<script>
export default{
data(){
return{
taskInfo:''
}
},
onLoad(){
this.post("goodsinfo.json", data).then(res => {
this.taskInfo = res.data;
});
},
methods:{
getLength(){
console.log(this.taskInfo.goodslist.length); // 触发事件后 控制台就会出现如上错误。
}
}
}
</script>
处理的方法:添加一个判断
<script>
export default{
data(){
return{
taskInfo:''
}
},
onLoad(){
this.post("goodsinfo.json", data).then(res => {
this.taskInfo = res.data;
});
},
methods:{
getLength(){
if(this.taskInfo.goodslist != null){
console.log(this.taskInfo.goodslist.length); // 触发事件后 控制台就不在出现错误提示。
}
}
}
}
</script>
如果这个数组本身就是自己声明的变量也不会出现类似的错误提示。
<script>
export default{
data(){
return{
taskInfo:'',
list:[]
}
},
onLoad(){
this.post("goodsinfo.json", data).then(res => {
this.taskInfo = res.data;
});
},
methods:{
getLength(){
let goodslist = []
console.log(goodslist.length); // 触发事件后 不在出现错误提示。
console.log(list.length); // 也不会出现错误提示
}
}
}
</script>
点赞 评论 收藏 ~~ 有疑惑的小伙伴,可能是我表达不清楚,可以留言讨论,如有错误,也希望大家不吝指出。 ~~ 点赞