栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何为React元素创建唯一键?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何为React元素创建唯一键?

您可以通过多种方式创建

unique keys
,最简单的方法是在迭代数组时使用索引。

    var lists = this.state.lists.map(function(list, index) {        return( <div key={index}>     <div key={list.name} id={list.name}>         <h2 key={"header"+list.name}>{list.name}</h2>         <ListForm update={lst.updateSaved} name={list.name}/>     </div> </div>        )    });

无论您将数据放在何处

this.state.lists.map
,都可以在此处将第二个参数传递
function(list, index)

给回调,这将是它的
index
值,并且对于数组中的所有项目都是唯一的。

然后您可以像

<div key={index}>

您也可以在这里做

    var savedLists = this.state.savedLists.map(function(list, index) {        var list_data = list.data;        list_data.map(function(data, index) { return (     <li key={index}>{data}</li> )        });        return( <div key={index}>     <h2>{list.name}</h2>     <ul>         {list_data}     </ul> </div>        )    });

编辑

但是,正如用户Martin Dawson在下面的评论中指出的那样,这并不总是理想的。

那么解决方案是什么?

许多

  • 您可以创建一个函数来生成唯一的键/ id /数字/字符串并使用
  • 您可以使用现有的npm软件包,例如uuid,uniqid等
  • 您还可以生成随机数,例如,
    new Date().getTime();
    并在要迭代的项目中添加前缀,以保证其唯一性
  • 最后,我建议使用从数据库中获得的唯一ID(如果有)。

例:

const generateKey = (pre) => {    return `${ pre }_${ new Date().getTime() }`;}const savedLists = this.state.savedLists.map( list => {    const list_data = list.data.map( data => <li key={ generateKey(data) }>{ data }</li> );    return(        <div key={ generateKey(list.name) }> <h2>{ list.name }</h2> <ul>     { list_data } </ul>        </div>    )});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/649760.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号