关于wx:key的写法,开发工具的疯狂warning问题怎么解决?
发布于 7 年前 作者 liuqiang 11950 次浏览 来自 问答

版本 1.02.1911180 ,警告内容:

wx:key="{{index}}" does not look like a valid key name (did you mean wx:key=“index” ?)

以前一直是按照文档写的:wx:key="{{keyName}},现在懵了呀,到底要不要加花括号呢??

我害怕,我怕花括号全部去掉了下版本又告诉我要加花括号,所以来寻求一个官方的答复。。

现在这一直warning得也无法正常开发了,版本回退也退不到没有warning的版本了


官方也没回复,现在写了两个正则把wx:key的花括号和item.给去掉了,供各位玩家参考。

分别用:wx:key=“item.(.*)” 和 wx:key="\{\{(.*)\}\}"

替换:wx:key="$1"

小前提:同个节点里的wx:for在wx:key前面,顺序不对的开发工具会报错,调整下就好了

4 回复

系统建议给每个for都加一个key, wx:for后面加一个wx:key="xxx"就没了

关于wx:key

这个问题的出现主要是早期版本编辑器(上两次更新之前)不会对不正确的wx:key提示警告,但你不加却会提示警告,且这个属性生不生效对功能没任何影响导致没人重视,且文档也表达的不清楚,且设置方式确实与其他地方不同(不能使用花括号),所以可以说是一个坑。

正确的写法是不能加"{{item.}}"(是错误不生效的写法),只能写成wx:key=“id”(代表item.id作为key),或者本身是个字符串就wx:key="*this",如果以上两种都不匹配就直接写一个不存在的属性如wx:key=“abc”,这样就不会报错(应该也没生效)了。

感觉一般不会用到,wx:key=“fdlkshjfjs随便写dfasfdsa”

我之前也是用的什么wx:key="{{index}}",wx:key="{{item.xxx}}"之类的,然后前段时间更新之后就疯狂报错,我一怒之下全改成了wx:key=“id”,管他有没有id,然后就解决了。以后的事以后再说吧。

回到顶部