Do not set same key {[object Object]}
发布于 5 年前 作者 ryan 17181 次浏览 来自 问答
Do not set same key {[object Object]} in wx:key.

我在调用 setData() 时,有时会有这个 warning,这个是什么原因呢?

var that = this
that.setData({
    ...
})

都是出现在「列表渲染」的数据中,能帮忙解答一下吗?谢谢!

7 回复

那是因为你的wx:key的值是对象,就算你使用*this,但是每个项的wx:key的值都是[Object Object]

wx:key="{{*this}}"

我是照着文档,wx:key=“unique”

我的循环 array 中的每个 item 都有一个 unique 属性,并且都有一个唯一字符串值。

还是不明白为什么会有这个 warning,第一个调用 setData 就会有 warning,第二次开始就不会有了

页面中多个for在一级, key不能相同

正确的写法:        

<view wx:for="{{list1}}" wx:key="list1"></view>

<view wx:for="{{list2}}" wx:key="list2"></view>

不正确的写法:

<view wx:for="{{list1}}" wx:key="list"></view>

<view wx:for="{{list2}}" wx:key="list"></view>


<view wx:for="{{list1}}"></view>
<view wx:for="{{list2}}"></view>

wx:key="{{index}}"  index可是唯一属性哦,所以使用之后不会就不会警告了

有没有大神知道的?这个 warning 还是没解决

key是列表中项目的唯一标识符,不能相同,你的wx:key设置错了

回到顶部