wx:if会导致official-account的重复创建?
发布于 7 年前 作者 yyao 3899 次浏览 来自 官方Issues

我在代码里面用了wx:if 就会造成official-account组件的重复创建,然后显示不了,请问有什么解决方案吗

这是模态窗代码

<view class=“mask” catchtap=“maskCloseFn” wx:if="{{isPublicPhone}}">

    <view class=“maskContent” catchtap=“maskOpen”>

        <official-account class=“officialAccount” bindload=“bindload” binderror=“binderror”></official-account>

    </view>

</view>

2 回复

hidden 是 display:none

可以试试hidden

wx:if vs hidden

因为 wx:if 之中的模板也可能包含数据绑定,所以当 wx:if 的条件值切换时,框架有一个局部渲染的过程,因为它会确保条件块在切换时销毁或重新渲染。

同时 wx:if 也是惰性的,如果在初始渲染条件为 false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染。

相比之下,hidden 就简单的多,组件始终会被渲染,只是简单的控制显示与隐藏。

一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。

回到顶部