React学习笔记(九)列表

列表
使用map()函数让数组中的每一项翻倍,我们得到了一个新的数列doubled
const numbers = [1,2,3,4,5];
const doubled = numbers.map((number) => number*2);
console.log(doubled);

const numbers = [1,2,3,4,5]
const listItems = numbers.map((number) => <li>{number}</li>)
ReactDOM.render(
    <ul>{listItems}</ul>,
    document.getElementById('list')
)

基础列表组件
运行这段代码,将会看到一个警告 a key should be provided for list items ,意思是当你创建一个元素时,必须包括一个特殊的 key 属性。
function NumberList(props) {
    const numbers = props.numbers
    const listItems = numbers.map((number) => <li>{numbers}</li>)
    return(
        <ul>{listItems}</ul>
    )
}
const numbers = [1,2,3,4,5]
ReactDOM.render(
    <NumberList numbers={numbers}/>,
    document.getElementById('list')
)

//分配key
function NumberList(props) {
    const numbers = props.numbers;
    const listItems = numbers.map((number) =>
        <li key={number.toString()}>
            {number}
        </li>
    )
    return(
        <ul>{listItems}</ul>
    )
}
const numbers = [1,2,3,4,5]
ReactDOM.render(
    <NumberList numbers = {numbers}/>,
    document.getElementById('list2')
)

//元素的key在他的兄弟元素之间应该唯一
function Blog(props) {
    const sidebar = (
        <ul>
            {props.posts.map((post) =>
                <li key={post.id}>
                    {post.title}
                </li>
            )}
        </ul>
    )
    const content = props.posts.map((post) =>
        <div key={post.id}>
            <h3>{post.title}</h3>
            <h3>{post.content}</h3>
        </div>
    )
    return(
        <div>
            {sidebar}
            <hr/>
            {content}
        </div>
    )
}
const posts = [
    {id:1,title:'hello world',content:'welcome to learning React!'},
    {id:2,title:'installation',content:'you can install React from npm'}
]
ReactDOM.render(
    <Blog posts = {posts}/>,
    document.getElementById('list3')
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值