代码之家  ›  专栏  ›  技术社区  ›  Alyona

在React中使用map时如何消除key错误?

  •  0
  • Alyona  · 技术社区  · 5 年前

    每个人都知道这个错误: Each child in a list should have a unique "key" prop 但是如果我有一个字符串数组,我想在我的段落中呈现它呢

    return(
        <p>
        {array.map(string => {
            return <>{string}<br/></>
        })}
        </p>
    )
    

    正如你所看到的,我实际上只返回带有 <br/> 最后,我没有地方也不需要钥匙。我怎样才能摆脱这个错误?把每句话都写进 <span>

    1 回复  |  直到 5 年前
        1
  •  0
  •   Dean James    5 年前

    当React呈现更改时,在将更改推送到DOM之前,它使用 virtual DOM

    当呈现子元素的集合时,假设 <li> 当一个独特的 key 未提供道具。它之所以需要这个道具是因为它可以执行我上面提到的智能决策。

    prop作为字符串,因为不建议对其使用索引:

    return(
      <p>
        {array.map((string, index) => <React.Fragment key={index.toString()}>{string}<br/></React.Fragment>)}
      </p>
    );
    
        2
  •  0
  •   alefseen    5 年前

    您可以使用map index作为段落的键,如下所示:

    return(
        <p>
        {array.map((string,index)=> {
            return <React.fragment key={index}>{string}<br/></React.fragment>
        })}
        </p>
    )