关于渲染
来源:2-3 Ajax获取Header组件数据
lascride
2021-07-25 11:12:27
老师,为什么我的数据不能渲染到页面上,如图,也没有老师视频中出现的<Icon type={item.icon} />代码,是版本的问题吗?
相关代码: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,导致菜单栏没有任何内容显示,建议参考下图添加上:
2、“没有老师视频中出现的<Icon type={item.icon} />代码”猜测是因为同学安装的antd版本与讲师安装的版本不一致。
目前学习阶段,推荐同学参考视频中的讲解,安装3.x版本,这样就可以使用老师提供的json文件,与讲师书写的代码保持一致,继续往后学习。使用如下命令安装指定的版本,示例:
npm install --save antd@3.10.9
课程学完之后,如果感兴趣,可以再结合官网,了解antd 4.x版本的使用方式,这样既不会影响同学的学习进度,又可以继续提升自身的能力哦。
祝学习愉快~
相似问题