在 React 组件的显示里面,我们经常需要根据组件里的数据去显示一个组件的列表。可以使用数组的 map 方法得到一组列表,然后放在组件的显示里用一下。注意列表里的每个项目都应该有个 key 属性,并且每个项目的 key 属性的值都应该不一样。下面这个练习可以帮您理解在 React 组件里显示列表。
有个 Message 组件是这样的:
const Message = (props) => {
return <div>{ props.message }</div>
}
再改造一下 App 组件,先在组件的 State 里添加一组要显示的数据:
state = {
header: 'ninghao.net',
show: false,
messages: [
{ id: 0, text: 'hello ~'},
{ id: 1, text: 'hola ~'},
{ id: 3, text: '您好 ~'}
]
}
上面我们添加了一个 messages ,它里面有一个 id 属性,还有个 text 属性,这个 messages 里的数据我打算用 Message 这个组件来显示。先去生成一个组件列表,在 App 组件的 render 方法里,用一下 map 方法:
const { messages } = this.state
const messageItems = messages.map(message => {
return <Message key={ message.id } message={ message.text } />
})