使用四点多版本的ant design,图标没显示,直接把数据里的原文显示出来了,整了半天也不会,怎么解决啊
来源:7-4 项目作业
静儿丫
2021-07-06 11:07:18
import react, { Component, Fragment } from 'react';
import logo from './logo.png';
import { Menu } from 'antd';
import axios from 'axios';
import './style.css';
class AppHeader extends Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
this.getMenuItems = this.getMenuItems.bind(this);
this.state = {
list: []
};
}
handleClick(e) {
console.log('click ', e);
this.setState({ current: e.key });
};
getMenuItems(){
return this.state.list.map(item=>{
return (
<Menu.Item key={item.id} icon={item.icon}>
{item.title}
</Menu.Item>
)
});
}
render() {
const { current } = this.state.list;
return (
<Fragment>
<img src={logo} className="headerLogo" alt="logo" />
<Menu onClick={this.handleClick} selectedKeys={[current]} mode="horizontal">
{this.getMenuItems()}
</Menu>
</Fragment>
)
}
componentDidMount(){
axios.get('http://www.dell-lee.com/react/api/header.json').then(res=>{
const data = res.data.data;
this.setState({
list: data
});
});
}
}
export default AppHeader;
相关截图:
1回答
同学你好,解答如下:
1、ant design 4版本的用法与3版本差别很大。首先需要安装@ant-design/icons:
然后在页面中,引入Icon:
import Icon from '@ant-design/icons'
同学的用法不对,所以图标显示不出来。
2、4版本的图标与3版本的图标名字不一样,课程中的接口对应的是3版本中的图标名,不能在4上使用。如果使用版本4,那么就不能使用视频中的接口。
3、ant design 4版本,对动态渲染图标的支持性不如3版本好;另外,ant design虽然升级了,但是我们没必要使用最新的版本,综上,建议换成版本3。
4、可以按照如下操作,将ant design切换成版本3:
执行npm install --save antd@3.10.9 安装3版本的ant design,执行完后,如果package.json中的ant design版本变成了3开头,则说明切换成功:
如果上述方式不行,则执行以下操作:
先将项目中的node_modules文件夹删除,然后将package.json中的antd记录删除:
然后执行npm install 重新装一下依赖。
装完之后,执行npm install --save antd@3.10.9。
祝学习愉快!
相似问题
回答 2
回答 2