Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法摆脱;警告:列表中的每个子项都应具有唯一的;“关键”;道具。”;_Javascript_Reactjs - Fatal编程技术网

Javascript 无法摆脱;警告:列表中的每个子项都应具有唯一的;“关键”;道具。”;

Javascript 无法摆脱;警告:列表中的每个子项都应具有唯一的;“关键”;道具。”;,javascript,reactjs,Javascript,Reactjs,无法摆脱“警告:列表中的每个孩子都应该有一个唯一的“键”道具 const Course=()=>{ const list=course.parts.map(parts=>{parts.name}{parts.exercises}) const exercisessonly=course.parts.map(x=>x.exercises) var-all=0; 对于(变量i=0;i{ 控制台日志(道具) 返回( {props.course} ) } 我已经在course.part.map中定义了

无法摆脱“警告:列表中的每个孩子都应该有一个唯一的“键”道具

const Course=()=>{
const list=course.parts.map(parts=>
  • {parts.name}{parts.exercises}
  • ) const exercisessonly=course.parts.map(x=>x.exercises) var-all=0; 对于(变量i=0;i{ 控制台日志(道具) 返回( {props.course} ) }
    我已经在course.part.map中定义了密钥,但它不想工作


    编辑:这被标记为应该的副本,但我仍然很困惑为什么我的{course.parts.id}与{parts.id}不一样。它至少在我的眼睛里链接到同一个地方。

    course.parts
    是数组而不是对象,所以你的表达式
    course.parts.id
    无效

    键有助于识别哪些项已更改、已添加或已删除。列表中的每个子项都应具有唯一的“键”

    const list = course.parts.map(part => <li key={part.id}>{part.name} {part.exercises}</li>)
    
    const list=course.parts.map(part=>
  • {part.name}{part.exercises}
  • #编辑: 键不应是索引
    它应该是一个唯一的Id。如果数组被重新排序或插入了不同的项,或者从数组中删除了一个单元格,则索引键存在问题。

    它们都将
    未定义
    (除非您已将
    id
    属性添加到
    course.parts
    数组中。但即使如此,它们都是相同的)您可以使用id的索引instant“course.parts.map((parts,index)=>
  • ”欢迎使用堆栈溢出!请在发布之前。有关搜索的更多信息。@Md.AbuSayed-不要这样做。“来自reactjs.org/docs/lists and keys.html#keys:“如果项目顺序可能发生变化,我们不建议对键使用索引。这可能会对性能产生负面影响,并可能导致组件状态问题。”(通过t.J.Crowder)为什么要投反对票?这听起来像是一个发现差异的游戏,而不是一个答案。看起来你建议使用
    parts.id
    作为唯一值,但问题中没有建议
    parts.id
    甚至存在。你的答案是对的。OP映射到
    课程。parts
    但从
    访问
    id
    当然。部分
    。你应该在回答中澄清这一点。这也可能是一个经常重复的问题。它不能回答这个问题,你可以建议另一个问题,如使用索引作为关键字