微信小程序控制臺(tái)提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解決方法
本文實(shí)例講述了微信小程序控制臺(tái)提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解決方法。分享給大家供大家參考,具體如下:
在小程序控制臺(tái)開發(fā)中遇到提示: warning: Now you can provide attr "wx:key" for a "wx:for" to improve performance.
警告提示如下圖所示:

查找資料與查看官方文檔發(fā)現(xiàn)原因大致如下:
官方解釋:
wx:key
如果列表中項(xiàng)目的位置會(huì)動(dòng)態(tài)改變或者有新的項(xiàng)目添加到列表中,并且希望列表中的項(xiàng)目保持自己的特征和狀態(tài)(如 <input/> 中的輸入內(nèi)容,<switch/> 的選中狀態(tài)),需要使用 wx:key 來指定列表中項(xiàng)目的唯一的標(biāo)識(shí)符。
網(wǎng)上資料:
wx:key 的值以兩種形式提供
1、wx:key="property" 其中property是代表在 for 循環(huán)的 array 中 item 的某個(gè) property,該 property 的值需要是列表中唯一的字符串或數(shù)字,且不能動(dòng)態(tài)改變。類似于字典的key值
2、wx:key="*this", 保留關(guān)鍵字 *this 代表在 for 循環(huán)中的 item 本身,這種表示需要 item 本身是一個(gè)唯一的字符串或者數(shù)字,如:
當(dāng)數(shù)據(jù)改變觸發(fā)渲染層重新渲染的時(shí)候,會(huì)校正帶有 key 的組件,框架會(huì)確保他們被重新排序,而不是重新創(chuàng)建,以確保使組
件保持自身的狀態(tài),并且提高列表渲染時(shí)的效率。
不添加wx:key情況:
<block wx:for="{{navItems}}" wx:for-item="item" wx:for-index="itemIdx">
<view bindtap="navItemTap" class="top-btn {{navBtnSelectIdx == itemIdx ? 'top-hoverd-btn' : ''}}" data-index="{{itemIdx}}" data-cid="{{item.cid}}">{{item.title}}</view>
</block>
會(huì)出現(xiàn)warning: Now you can provide attr "wx:key" for a "wx:for" to improve performance. 如果明確知道該列表是靜態(tài),或者不必關(guān)注其順序,可以選擇忽略。
推薦array 的 每一個(gè)item都添加一個(gè)唯一識(shí)別的property來管理,這樣就可以去掉warning,如果使用保留關(guān)鍵字,好像會(huì)出現(xiàn)顯示的item都是最后一個(gè)的
<block wx:for="{{navItems}}" wx:key="navItems" wx:for-item="item" wx:for-index="itemIdx">
<view bindtap="navItemTap" class="top-btn {{navBtnSelectIdx == itemIdx ? 'top-hoverd-btn' : ''}}" data-index="{{itemIdx}}" data-cid="{{item.cid}}">{{item.title}}</view>
</block>
好了, 再也沒有煩人的提示了!
注意:這里添加了wx:key="navItems"
希望本文所述對(duì)大家微信小程序開發(fā)有所幫助。
相關(guān)文章
js和jquery設(shè)置disabled屬性為true使按鈕失效
這篇文章主要介紹了js和jquery使按鈕失效的方法,需要的朋友可以參考下2014-08-08
重學(xué) JS:為啥 await 不能用在 forEach 中詳解
這篇文章主要介紹了重學(xué) JS:為啥 await 不能用在 forEach 中,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
window.parent調(diào)用父框架時(shí) ie跟火狐不兼容問題
window.parent調(diào)用父框架時(shí),ie跟火狐不兼容問題!2009-07-07
JS判斷移動(dòng)端訪問設(shè)備并加載對(duì)應(yīng)CSS樣式
JS判斷不同web訪問環(huán)境,主要針對(duì)移動(dòng)設(shè)備,提供相對(duì)應(yīng)的解析方案,本例是加載不同的css樣式2014-06-06
Three.js使用OrbitControls后修改相機(jī)旋轉(zhuǎn)方向無效解決辦法
three.js是用javascript寫的基于webGL的第三方3D庫(kù),下面這篇文章主要給大家介紹了關(guān)于Three.js使用OrbitControls后修改相機(jī)旋轉(zhuǎn)方向無效的解決辦法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
前端使用URL API實(shí)現(xiàn)高效的URL解析
在現(xiàn)代Web開發(fā)中,URL是前端和后端交互的核心載體,本文將深入探討如何利用URL API實(shí)現(xiàn)URL的解析,構(gòu)建和操作,希望對(duì)大家有一定的幫助2025-04-04

