请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么key值是undefined,而当前节点的文本内容却正常

for(let i =(page*10);i<(page+1)*10;i++){
  pageList.push(
    <SearchInfoItem key={newList[i]}>{newList[i]}</SearchInfoItem>
  );
}

为什么后面那个newList却是有值的?

正在回答

插入代码

2回答

因为请求是异步的

界面第一次渲染的时候没数据,异步请求结束后界面又渲染了一次,所以代码其实是执行了两次

第一次没数据,10个item都是空的,所以key也是undefined

第二次异步请求回来了 就有数据了


0 回复 有任何疑惑可以回复我~
慕的地4085751 2018-12-19 14:55:57

因为最后一页的数量少于10个 加一下判断吧

if (newList.length) {

   for (let i = (page - 1) * 10; i < page * 10 ; i++) {

        if (i < newList.length) {

            pageList.push(

                 <SearchInfoItem key={newList[i]}>{newList[i]}</SearchInfoItem>

          )

      }

   }

}


0 回复 有任何疑惑可以回复我~
  • 提问者 慕婉清4583709 #1
    你没理解我的意思,我是指在视频中老师说在循环前在if判断newList是否为空,否则会造成key值是undefined。我的问题是为什么key值打印出来会是undefined,而<SearchInfoItem>{newList[i]}</SearchInfoItem>这个却显示正常。。。
    回复 有任何疑惑可以回复我~ 2018-12-20 12:35:45
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号