问题描述
uniapp H5开发中在读取某个数组的长度时出现如下错误:[system] TypeError: Cannot read property ‘length’ of undefined

这并不会影响到对移动端H5项目的开发。
解决问题
模拟出现错误的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <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>
|
处理的方法:添加一个判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <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>
|
如果这个数组本身就是自己声明的变量也不会出现类似的错误提示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <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>
|