1. 程式人生 > >記一個react拖動排序中的坑:key

記一個react拖動排序中的坑:key

map 一個 解決方案 () 不重復 tab 需求 unique nbsp

在做一個基於react的應用的時候遇到了對列表拖動排序的需求。當使用sortable對列表添加排序支持後發現一個問題:數據正確排序了,但是dom的順序卻亂了,找了一會兒原因後發現是因為在渲染數據的時候指定了一個動態的key(map((o,i)=>(<li key={i}></li>))),導致了dom順序混亂。解決方案有:將數據裝入模型的時候生成一個不重復的key,或者使用lodash的uniqueId:

import uniqueId from lodash/uniqueId

在指定key的時候調一下:

 <li data={photo} key={uniqueId()} index={j}></li>

記一個react拖動排序中的坑:key