美文网首页
Rendering Lists(怎么在react中渲染List)

Rendering Lists(怎么在react中渲染List)

作者: 灯火葳蕤234 | 来源:发表于2019-03-23 20:04 被阅读0次
运用map函数
class Counter extends Component {
    state = {
        tags: ['tag1','tag2','tag3']
    };
    render() { 
        return (
            <div>
                <ul>
                    { this.state.tags.map(tag => <li>{ tag }</li>) }
                </ul>
            </div>
        );
    }
}

运行,会发现控制台报错:
Warning: Each child in an array or iterator should have a unique "key" prop.
每个数组的迭代项都要有一个唯一的key

  • 造成这个错误的原因,是react要区分每个列表项,以致react的虚拟dom改变的时候,react能马上反应过来什么组件改变了,然后就要重新渲染浏览器dom以确保同步。
  • 所以,如果要渲染一个列表的项,在每个列表项生成时,要设置它的key属性。
    如,这里把key设置为一个动态的量:
{ this.state.tags.map(tag => <li key={ tag }>{ tag }</li>) }
  • 因为这里的每个tag都是字符串,他们是各不相同的。所以我们可以用作key的值。在其他情况,我们的tag可能是对象,它有自己的标签,我们可以使用{tag.id}的形式来使用。
  • 注意:这里的key在列表中是唯一的,但是这个key不用在整个程序内是唯一的,每个key的唯一性只在当前列表有效。
  • 保存修改,再回到浏览器中,发现报错已经消失了。

相关文章

  • Rendering Lists(怎么在react中渲染List)

    运用map函数 运行,会发现控制台报错:Warning: Each child in an array or it...

  • React effect hooks各种使用场景

    react rendering原理 举个栗子 以上程序,react是这样渲染的。 每一次渲染中,count的值是固...

  • 离屏渲染

    On-Screen Rendering 在屏渲染 Off——Screen Rendering 离屏渲染 当我们设置...

  • 光照与渲染(四)- 渲染路径

    前向渲染(Forward Rendering) 在前向渲染中,每个对象会被每个影响它的光源在一个‘pass’中渲染...

  • 离屏渲染

    On-Screen Rendering Off-Screen Rendering 界面的渲染过程 渲染过程: 如何...

  • test

    Enzyme Shallow Rendering - 不会渲染子组件DOM Rendering - 渲染子组件 U...

  • 浅谈 React 列表渲染

    ? React 的列表渲染 key 与 Reconciliation List and Keys - ReactR...

  • iOS 离屏渲染

    在OpenGL中,GPU有2种渲染方式 On-Screen Rendering:当前屏幕渲染,在当前用于显示的屏幕...

  • Unity中的渲染路径

    1. 什么是渲染路径(Rendering Path)? 在Unity中,渲染路径决定了光照是如何应用到Unity ...

  • 离屏渲染

    在OpenGL中,GPU有2种渲染方式On-Screen Rendering:当前屏幕渲染,在当前用于显示的屏幕缓...

网友评论

      本文标题:Rendering Lists(怎么在react中渲染List)

      本文链接:https://www.haomeiwen.com/subject/scqevqtx.html