Do not set same key {[object Object]}

发布于 7 年前作者 ryan17326 次浏览最后编辑 7 年前来自 ask
Do not set same key {[object Object]} in wx:key.

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

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

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

7 回复
cuiyong
cuiyong1 楼6 年前

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

xiongqiang
xiongqiang2 楼6 年前

wx:key=“{{*this}}”

lmeng
lmeng3 楼6 年前

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

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

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

jing86
jing864 楼6 年前

页面中多个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>
huangxiulan
huangxiulan5 楼6 年前

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

weidong
weidong6 楼6 年前

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

hsu
hsu7 楼5 年前

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