请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

disc报错,定位不到错误

https://img1.sycdn.imooc.com//szimg/5c10b4c90001a81a17040736.jpg

https://img1.sycdn.imooc.com//szimg/5c10b4c90001a44217781038.jpg

错误定位不到,不知道哪里有错。当把music-list组件的props:{songs:default:}中的null改为【】就不会报错,类似这种错误,我们如何定位问题?比如这种错误,根本不能告诉我们错误代码行?????

https://img1.sycdn.imooc.com//szimg/5c10b5530001302107670744.jpg

但是这时候会有警告,??????改成这样,default: () => [],警告解除https://img1.sycdn.imooc.com//szimg/5c10b5c200016b0013440804.jpg




正在回答

1回答

首先,根据错误提示你可以知道报错是哪个组件,其次顺着错误堆栈往上找,发现发生在 Vue._render 阶段,就知道是模板渲染的时候报错,最后根据报错信息 Cannot read property 'length' of null 就知道肯定代码中执行了 null.length,那么很显然是取了某个数组的 length,而且数组的初始值是 null,所以就很容易找到报错的最终位置了。
我的建议是加强 JS 基础,熟练使用 Vue.js,然后可以去学习 Vue.js 源码,这种问题几乎看一眼就知道问题所在。

1 回复 有任何疑惑可以回复我~
  • 提问者 baobaojiayou #1
    非常感谢!爱您
    回复 有任何疑惑可以回复我~ 2018-12-13 10:02:19
  • 77MICKY #2
    老师,再追加一个问题。你组件里的写法"default: []"为什么可以,而我这里报错,“must be a function”,必须写成"default: () => []"呢?
    回复 有任何疑惑可以回复我~ 2019-03-14 16:55:02
  • ustbhuangyi 回复 77MICKY #3
    新版本的 Vue.js 对 Prop有这个要求,你写成 default: () => [] 吧
    回复 有任何疑惑可以回复我~ 2019-03-14 18:03:15
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信