[BScroll warn]: Can not resolve the wrapper DOM.

在我们使用better-scroll 的插件的时候,在涉及某些方面的时候,控制台会出现下面的报错:

[BScroll warn]: Can not resolve the wrapper DOM. Vue better-scroll
[Vue warn]: Error in mounted hook: “TypeError: Cannot read property ‘children’ of undefined”

这大概意思就是:
[BScroll warn]:无法解析包装器DOM。Vue better-scroll
[Vue warn]:挂载钩子中的错误:" TypeError:无法读取未定义的属性’ children ’ "

当时我就在这个问题上纠结了好久,代码、逻辑都没错,最后我查了资料,想明白是为什么了,下面就跟大家说说:
先看错误代码:

 <div v-if="change">
  </div>
 <div  v-else ref="wrapper"></div>

因为我的用的是ref来获取div的,但是他总是报错找不到这个节点。
问题就出在v-if(v-else)这里,因为在mounted(挂载)函数执行时,我的change值在挂载时为false,所以该节点就不会被渲染出来,所以就找不到节点了。

而这时候我们可以将v-if(v-else)改为v-show就行了
正确代码如下:

<div v-if="change">
  </div>
 <div  v-show="!change" ref="wrapper"></div>

因为两个只能渲染一个,所以v-show取 !change (真),也就是为true时渲染第二个div元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值