开发过程中有如下需求:
动态获取一个盒子的高度(因为盒子是由wx:for的内容撑起),并将该高度设置为另一容器的高度。
但在实际开发过程中发现使用selectQuery获取节点信息时,发现如下问题: 例如当前wx:for的data为长度为10的array,但在获取节点信息时获取到的array为0,
此时为增加array的长度为11,执行selectQuery,获取到的array为10;
即每一次数据更新后,执行selectQuery获取节点信息时,节点还未被新数据更新,还是上一次的旧数据。
如何判断节点已被新数据渲染?
this.setData({ list: newList },()=>{ // 就是这里啦 })
因为是使用mpvue开发的,所以不能用this.setData(),很难受
召唤一个mpvue玩家!
已经快哭了兄弟,这东西太难用了。
mpvue也是基于vue的,可以用this.$nextTick(() => {// 这里试试})
这个我试过了,不生效,就很头疼。
笨办法用setTimeout...调整个合适的值emm..
我本来也这么想的哈哈哈,但是还是不太放心,毕竟不同手机配置不一样。碰到卡得要死得手机就gg了。
这个应该可以通过布局来解决问题,这样就免于计算高度了。
<movable-area> <div class="body"> <block> <div></div> </blcok> </div> <movable-view> <button class="customerService"></button> </movable-view> </movable-area> 目标是要让customerService能够在整一个body中移动,但是这个div因为是由block中的内容撑起来了,所以movable的高度需要与body一致才能实现这个效果。但是现在无法准确获取到body的高度。
没用过mpvue。有规律的话,可以通过你的array数据来计算,不获取dom;把button的高度也弄个变量;
嗯这样也可以,谢谢