【问题标题】:the detail in react list render反应列表渲染中的细节
【发布时间】:2018-06-10 11:11:06
【问题描述】:

对于 render() 中的第一种方式:

const arr = [<li>{numbers[0]}</li>,<li>{numbers[0]}</li>,<li>{numbers[1]}</li>]
return (
<ul>{arr}</ul>
);

它运行时会出现我可以理解的警告:
警告:数组或迭代器中的每个孩子都应该有一个唯一的“键”道具。

但对于其他方式:

  return (
    <ul>
      <li>{numbers[0]}</li>
      <li>{numbers[0]}</li>
      <li>{numbers[1]}</li> 
    </ul>
  );

它运行正常,没有警告..

上面呈现列表的两种方式应该生成相同的虚拟 dom。但我不明白为什么第二种方式运行时没有像第一种方式那样发生警告。
有人可以告诉为什么吗?谢谢!

【问题讨论】:

    标签: javascript list reactjs


    【解决方案1】:

    这是 React 对循环的要求。你可以在https://reactjs.org/docs/lists-and-keys.html找到更多信息

    【讨论】:

    • 谢谢,但是为什么当我们不使用循环时不需要这个要求,就像上面的第二种方式?
    • 因为没有循环。循环中的标签需要唯一的键。
    • 这确实是基于数组的列表组件的要求。上面的代码中没有循环。
    • 好的,我只是对 list-render 和 dom diff 有点困惑,我可以解决它。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2016-10-15
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    相关资源
    最近更新 更多