关于渲染

来源:2-3 Ajax获取Header组件数据

lascride

2021-07-25 11:12:27

老师,为什么我的数据不能渲染到页面上,如图,也没有老师视频中出现的<Icon type={item.icon} />代码,是版本的问题吗?

http://img.mukewang.com/climg/60fcd63f096453e128741578.jpg

相关代码:folder: Header, -> index.js

​//JS
import React, { Component, Fragment } from 'react';
import { Menu } from 'antd';
import { MailOutlined, AppstoreOutlined, SettingOutlined } from '@ant-design/icons';

//CSS
import "./style.css"
//IMG
import logo from "./logo.png";

class AppHeader extends Component {
constructor(props) {
super(props);
this.state = {
list: [
{
id: 1,
icon: "mail",
title: "VOA慢速英语"
},
{
id: 2,
icon: "mail",
title: "VOA慢速英语"
},
{
id: 3,
icon: "mail",
title: "VOA慢速英语"
},
{
id: 4,
icon: "mail",
title: "VOA慢速英语"
},
{
id: 5,
icon: "mail",
title: "VOA慢速英语"
},
{
id: 6,
icon: "mail",
title: "VOA慢速英语"
},
]
}
}
getMenuItems() {
this.state.list.map(item => {
console.log(item);
return (
<Menu.Item key={item.id} icon={<MailOutlined />}>
{item.title}
</Menu.Item>
)
})

}
render() {
return (
<Fragment>
<img src={logo} className="app-header-logo" />
<Menu mode="horizontal">
{this.getMenuItems()}
</Menu>
</Fragment>




);
}
}

export default AppHeader;


写回答

1回答

好帮手慕慕子

2021-07-25

同学你好,对于你的问题解答如下:

1、因为getMenuItems方法内部缺少return,导致菜单栏没有任何内容显示,建议参考下图添加上:

http://img.mukewang.com/climg/60fcfaec09310ac507390249.jpg

2、“没有老师视频中出现的<Icon type={item.icon} />代码”猜测是因为同学安装的antd版本与讲师安装的版本不一致。

目前学习阶段,推荐同学参考视频中的讲解,安装3.x版本,这样就可以使用老师提供的json文件,与讲师书写的代码保持一致,继续往后学习。使用如下命令安装指定的版本,示例:

npm install --save antd@3.10.9

课程学完之后,如果感兴趣,可以再结合官网,了解antd 4.x版本的使用方式,这样既不会影响同学的学习进度,又可以继续提升自身的能力哦。

祝学习愉快~

0

0 学习 · 15276 问题

查看课程