收藏
回答

请问小程序中使用 wx:key时到底需不需要加双括号{{}}?

问题模块
教程反馈

- 请问小程序中使用 wx:key时到底需不需要加双括号{{}}?

官方文档不用加双括号,且直接写字段的名称字符串,如下:



而官方的demo却是这样的:



这就很让人迷茫了,希望能得到解答


最后一次编辑于  2018-08-17  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

5 个回答

  • 蛮大人
    蛮大人
    2018-08-20

    我刚写了一个demo试了下,唯一正确的写法是这样的wx:key="id",



    改变列表顺序,注意复选框的状态


    其它写法都无法做到列表顺序改变时仅仅改变view的位置,而且随便写任意字符串甚至空字符串都是一样的效果







    2018-08-20
    赞同 2
    回复
  • SHIELD
    SHIELD
    2018-08-17

    变量需要,常量不需要。就是这么简单粗暴!

    2018-08-17
    赞同
    回复 4
    • 蛮大人
      蛮大人
      2018-08-17

      官方文档上的那种方式属于常量吗?常量是写不写{{}}都行,还是说必须不写{{}}

      2018-08-17
      回复
    • 蛮大人
      蛮大人
      2018-08-17

      请问写{{}}的时候格式是{{item.unique}}还是{{unique}}?这些文档里面都没有说清楚

      2018-08-17
      回复
    • SHIELD
      SHIELD
      2018-08-17回复蛮大人

      自己随便弄个demo试下不就知道喽。我一般都用下标index,不太用key。

      2018-08-17
      回复
    • 蛮大人
      蛮大人
      2018-08-17回复SHIELD

      哦,谢谢

      2018-08-17
      回复
  • HS
    HS
    2018-08-17

    刚才和相关同事确认了一下,这里是不需要双括号的。直接写:


    <view wx:for="{{array}}" wx:key="someProp">


    2018-08-17
    赞同
    回复 1
    • 蛮大人
      蛮大人
      2018-08-20

      但是官方提供的小程序demo程序里面的源码却是这样用的

      2018-08-20
      回复
  • 仙森ღ₅₂₀¹³¹⁴
    仙森ღ₅₂₀¹³¹⁴
    2018-08-20

    一般使用 wx:key="{{index}}"

    2018-08-20
    赞同
    回复 2
    • 蛮大人
      蛮大人
      2018-08-20

      wx:key="{{index}}"这种方式不太好吧,一般情况下可以,但是比如列表中间插入数据的情况可能就会出现问题,这个key的作用就是为了当一些view的位置发生变化时因为有唯一标识而只需改变view的位置而不用重绘,提高页面的刷新效率

      2018-08-20
      回复
    • 仙森ღ₅₂₀¹³¹⁴
      仙森ღ₅₂₀¹³¹⁴
      2018-08-20回复蛮大人

      我其实只是为了 去掉开发者工具的警告而已。

      2018-08-20
      3
      回复
  • 抱抱北极熊
    抱抱北极熊
    2018-08-20

    个人觉得一定要加 双大括号,当然你不加也没事,这个是标识dom的唯一性的,如果你不做动画,不做其它的操作,写不写都行,既然要写,那你最好还是加上,你说呢

    2018-08-20
    赞同
    回复