收藏
回答

wx:for渲染数组,key不绑定index,在对其绑定的数组排序时会出现index混乱的情况?

我因为是用的uni,使用vue编程的,wx的不是很懂,把转换后的代码贴上来,路过的大佬帮忙解释一下

以上两个排序时是没有问题的,但是我的折叠栏的打开状态不会跟随到移动后的折叠栏上去

这个的话状态会跟随到排序后的位置上去,但是排序会混乱,感觉index成了dom自身的值,而不是新数组的index

请大佬们指点一下,怎么才能又改变index的值,又能将折叠栏打开的状态跟随,拜谢!!

最后一次编辑于  2021-03-03
回答关注问题邀请回答
收藏

4 个回答

  • 卢霄霄
    卢霄霄
    2021-03-03

    vue的 key写法一般是 item.id,而小程序的写法直接是 id

    2021-03-03
    有用 1
    回复 17
    • 红狐入梦
      红狐入梦
      2021-03-03
      大佬能否细说一下这个直接写的id是哪里来的
      2021-03-03
      回复
    • 卢霄霄
      卢霄霄
      2021-03-03回复红狐入梦
      就是你循环的数组里的一个唯一属性
      2021-03-03
      回复
    • 红狐入梦
      红狐入梦
      2021-03-03
      我的数组元素是json,在创建的同时保存的date.now()作为json的一个属性date,按理来说是唯一的啊,key设置的是value.date
      2021-03-03
      回复
    • 红狐入梦
      红狐入梦
      2021-03-03
      感觉就是wx比vue在绑定的数组重新排序时少了一个下标的随动,导致排序后会很混乱。但是用index的话,本身又有问题,没办法同时将dom自身的状态跟随到排序后的dom上去
      2021-03-03
      回复
    • 卢霄霄
      卢霄霄
      2021-03-03回复红狐入梦
      vue里面写的话是 :key="value.date" 小程序里写成 wx:key="date"
      2021-03-03
      回复
    查看更多(12)
  • 默
    2021-03-03

    渲染的变量是数组中唯一的吗?

    2021-03-03
    有用
    回复 2
    • 大兵
      大兵
      2021-03-03
      感觉多半是这个原因
      2021-03-03
      回复
    • 默
      2021-03-03回复大兵
      不用感觉 就是的
      我之前碰到过 不是唯一的标识符 排序就乱了 最后我直接不写了 警告就警告吧 反正用户感觉不出来 
      哈哈哈
      2021-03-03
      回复
  • 拾忆
    拾忆
    2021-03-03

     <block wx:for="{{banners}}" wx:key="id">

     <block wx:for="{{banners}}" wx:key="index">

    2021-03-03
    有用
    回复 1
    • 红狐入梦
      红狐入梦
      2021-03-03
      大佬能细说一下区别吗
      2021-03-03
      回复
  • 红狐入梦
    红狐入梦
    2021-03-03

    感觉就是算法搞错了排序后原dom所在的位置,大晚上的脑子也转的好慢,想不明白了

    2021-03-03
    有用
    回复
登录 后发表内容
问题标签