- 当前 Bug 的表现(可附上截图)
当渲染一个对象数组的时候,我期望每次新插入数据就在 ready() 中打印一下它的数据。但是在实际的使用过程中会发现新插入的数据不会触发 ready(),每次都触发都是初始的数据。
个人猜测是因为 wx:key 设置不生效,导致默认使用数组下标来设置 key,每次向数组前面插入数据的时候 (0,-10) 的 DOM 总是存在的导致了这个问题。
- 预期表现
希望能每次插入就打印插入的数据,而不是初始数据
- 复现路径
代码片段中点击向前插入按钮查看控制台的打印结果即可发现问题
- 提供一个最简复现 Demo
代码片段 wechatide://minicode/zkkjJemA6vY8
你好,wx:key 不支持数据绑定的形式,你的例子中,应为 wx:key="item"
@ghost 应该是官方的回答是对的,就是 item,对象名只是我随便写的例子。这里的主要问题还是我写了花括号了。。。之前一直都分不清什么情况要加花括号什么情况下不要加。。。。
我测试了确实是wx:key导致的问题,
wx:key='item.item' 其中的item.item 改成对象字段名称即可,你把对象名称写成item,不知道你是故意为之还是为何?
修改代码:
const data = Array.from({length: 10}, (v, k) => ({
sid: 'list' + (k+base)
}));
<itema wx:for="{{data}}" wx:key="sid" data="{{item.sid}}">
</itema>
这样做有何实际意义?
@LastLeaf 嗯,已经发现了,thx~
@赵子龙 我就是故意要往前插的
你concat插反了