记一个react拖动排序中的坑:key

Posted axel10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一个react拖动排序中的坑:key相关的知识,希望对你有一定的参考价值。

在做一个基于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的主要内容,如果未能解决你的问题,请参考以下文章

React/AntDesign 如何使行可拖动? (表格拖动排序)

记FluentData的坑点

React--key值详解

P17:React高级-ref 的用法和 ref 中的坑

记一次MySQL Group by 的坑

记UWP开发——多线程操作/并发操作中的坑