采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
for(let i =(page*10);i<(page+1)*10;i++){ pageList.push( <SearchInfoItem key={newList[i]}>{newList[i]}</SearchInfoItem> ); }
为什么后面那个newList却是有值的?
因为请求是异步的
界面第一次渲染的时候没数据,异步请求结束后界面又渲染了一次,所以代码其实是执行了两次
第一次没数据,10个item都是空的,所以key也是undefined
第二次异步请求回来了 就有数据了
非常感谢!
因为最后一页的数量少于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>
)
}
你没理解我的意思,我是指在视频中老师说在循环前在if判断newList是否为空,否则会造成key值是undefined。我的问题是为什么key值打印出来会是undefined,而<SearchInfoItem>{newList[i]}</SearchInfoItem>这个却显示正常。。。
登录后可查看更多问答,登录/注册
主流新技术 React-redux,React-router4,贯穿基础语法
5.6k 22
5.7k 20
2.0k 19
4.4k 17
1.5k 13
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号