遇到那个坑爹的”TypeError:Cannotreadproperty’XXX’ofundefined”Vue错误别慌,这东西你想访问还没创建好的对象属性就这样了!先稳住,找到问题源头,然后给它来个一针见血就是咯。
首先检查下数据对不咯。在Vue里,这都得靠data对象来搞定。别搞错,不然可就麻烦大了!所以,赶紧看看你手里的数据有没有问题哈?
检查数据是否真的存在
在用Vue时,经常要用到v-if或者v-show控制显示哪些内容。不过有时候,如果想要获取只有在特定时间才会有的数据属性,那就容易出错。所以,动手之前别忘了检查一下数据是不是真的存在!
这个代码的问题就是data要是没了,连data.name都找不到咋办嘞?所以,使用数据之前得想想这茬儿!那就再加个小条件data&&data.name,这样只有当data.name确实存在时才能取出~
{{ data.name }}
使用条件渲染,避免不必要的麻烦
有时候,你可能想根据条件展示不同的组件是不是?那这个时候,咱们的“条件渲染”可是能大显身手!看上面的例子,只有当条件成立的时候,我们才能看到comp-b,这样就省得去管那些实际上并不属于comp-a的属性。
{{ data.name }}
设置默认值,有备无患
咱得设置点默认值,预防出错比如说data.name这个属性没指明的话,它自己就会填上默认名字,这样心里就有底!
总结与提问
记住,当你看到那个TypeError报错提示:“Cannotreadproperty‘XXX’ofundefined”时,先别慌张。检查一下你的数据有没有准备好,还有就是设置默认值和条件渲染这两个环节不能少,否则可能会出状况。按照我说的做,解决这些小问题其实很简单!
你们有没碰到过跟我类似的Vue项目问题?怎么解决的赶紧说一说,在评论区集合,让我们一起进步!记得顺便点赞留言~
{{ data.name || '默认名称' }}
评论0