收藏
回答

请教一下各位大佬,wx:for-item为什么会出现自动占位啊,不知道该怎么解决了?

在写wx:for 循环的时候,本来想利用wx:for-item给元素重新命名的,结果遇到bug了。

我直接上图:

原本是这样的view,想利用筛选把需要的结果选出来:

但是确定后出来的情况是这样的,那些被我隐藏的地方会出现一个空白的view占位,为了更明显,我把这个空白占位的view加了一个border:


麻烦各位大佬帮我看看,问题在哪?我不想要这个占位,我希望筛选结果直接展示在最顶部,我尝试了直接删掉wx:for-item语句,结果整个数据都不会展示了。

下面是demo连接:

https://developers.weixin.qq.com/s/G05xZCmP7ok1

回答关注问题邀请回答
收藏

2 个回答

  • 一隅宇
    一隅宇
    2020-09-25

    首先说结论,这个问题是你自己代码的bug不是wx:for-item的锅

    1,为什么会显示空白区域

    首先,你循环的数组是{{list}},结果是这样

    这个list数组,打印出来是这样的

    数组里有六条数据,当然会循环出来六个view,至于为什么有的是白框,再看前端代码

    是因为你加了这个,就算这个view循环渲染出来了,内部也没有元素,所以就会出现一个空白的view

    去掉之后就不是白框了

    而是将里面的数据显示出来了

    所以你现在要做的,是检查自己代码的逻辑,这个锅wx:for-item不背


    2020-09-25
    有用 1
    回复 4
    • 一隅宇
      一隅宇
      2020-09-25
      其实你都setdata了,不想显示的数据直接从数组中删掉再set,还能渲染的快一点,想留着就这样写就行
      2020-09-25
      回复
    • A德佑-黄勇¹³³³³⁰⁶⁵³⁸¹
      A德佑-黄勇¹³³³³⁰⁶⁵³⁸¹
      2020-09-25
      有点明白了,我的wx:if只是将元素隐藏了,实际上数据长度还是没变化,只是将status为0的渲染出来了。。。
      那我单纯用wx:if 的话,数据长度还是不会发生变化,是不是应该向楼下大佬说的那样,从数组里把数据删掉?
      2020-09-25
      回复
    • 一隅宇
      一隅宇
      2020-09-25回复A德佑-黄勇¹³³³³⁰⁶⁵³⁸¹
      啥楼下大佬 = = 还不都是我。。。。你不删的话,数据多了渲染就很慢,wx:if隐藏也是要消耗时间的,反正我一般就是直接删掉,看你的需求了
      2020-09-25
      回复
    • A德佑-黄勇¹³³³³⁰⁶⁵³⁸¹
      A德佑-黄勇¹³³³³⁰⁶⁵³⁸¹
      2020-09-25回复一隅宇
      其实我有想直接删除,但是你看我的demo,我是直接修改的projectArray数据然后赋值给list的。如果删除的话数据就没有了,那反过来选择“不限”的话数据就不全了。
      本来想直接操作list的,但是不知道为什么,list的长度始终比projectArray的长度多出1。我尝试操作list[index],都会报undifined?
      2020-09-25
      回复
  • .
    .
    2020-09-25

    wx:for给item就可以了。

    2020-09-25
    有用
    回复 3
登录 后发表内容
问题标签