收藏
回答

wx:if会导致official-account的重复创建?

我在代码里面用了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 个回答

  • 拾忆
    拾忆
    2019-08-21

    可以试试hidden

    wx:if vs hidden

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

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

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

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


    2019-08-21
    有用 2
    回复 3
    • 哄哄
      哄哄
      2019-08-21
      解决了,谢谢大佬,还想问一下wx:if的切换是每次去重新加载组件吗?而hidden是和overflow: hidden;是一个意思吗
      2019-08-21
      回复
    • 拾忆
      拾忆
      2019-08-21回复哄哄
      嗯,wx:if 是根据条件创建的。hidden只是根据条件显示隐藏。
      2019-08-21
      1
      回复
    • 哄哄
      哄哄
      2019-08-21

      明白了、谢谢大佬

      2019-08-21
      回复
  • 睡前原谅一切
    睡前原谅一切
    2019-08-21

    hidden 是 display:none

    2019-08-21
    有用
    回复 2
    • 哄哄
      哄哄
      2019-08-21
      嗯嗯、明白了
      2019-08-21
      回复
    • 睡前原谅一切
      睡前原谅一切
      2019-08-21回复哄哄
      相当于 h5里面的 dom 还在。wx:if 就是dom不在。然后重新创建
      2019-08-21
      回复
登录 后发表内容
问题标签