如何将item.type的字符串转为html标签

如何将item.type的字符串转为html标签

import React, { Component,Fragment } from 'react';
import logo from './logo.png';
import './style.css';
import { Menu } from 'antd';
import { MailOutlined, AppstoreOutlined, SettingOutlined } from '@ant-design/icons';

class AppHeader extends Component{
    constructor(props){
        super(props); 
        this.state={
            list:[{
                id:1,
                type:"<MailOutlined />",
                title:"VOA慢速英语"
            },{
                id:2,
                type:"<AppstoreOutlined />",
                title:"VOA慢速英语"
            },{
                id:3,
                type:"<SettingOutlined />",
                title:"VOA慢速英语"
            },{
                id:4,
                type:"<MailOutlined />",
                title:"VOA慢速英语"
            },{
                id:5,
                type:"<AppstoreOutlined />",
                title:"VOA慢速英语"
            },{
                id:6,
                type:"<SettingOutlined />",
                title:"VOA慢速英语"
            }]
        };       
    }
    getMenuItems(){
        return this.state.list.map(item => {
            return (
                <Menu.Item key={item.id} className="app-header-menu">
                    <div dangerouslySetInnerHTML={item.type}></div>
                    VOA慢速英语
                </Menu.Item>
            );
        });
    }
    render(){
        return (
            <Fragment>
                <img src={logo} className="app-header-logo"/>
                <Menu className="app-header-menubox" mode="horizontal">
                    {this.getMenuItems()}
                </Menu>
            </Fragment>
        );
    }
}

export default AppHeader;


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,关于ant-design4.0版本的图标组件使用方法如下:

import React, { Component,Fragment } from 'react';
import logo from './logo.png';
import './style.css';
import { Menu } from 'antd';
import { MailOutlined, AppstoreOutlined, SettingOutlined } from '@ant-design/icons';

const { SubMenu } = Menu;

class App extends React.Component {
  state = {
    current: 'mail',
  };

  handleClick = e => {
    console.log('click ', e);
    this.setState({
      current: e.key,
    });
  };

  render() {
    return (
      <Menu onClick={this.handleClick} selectedKeys={[this.state.current]} mode="horizontal">
        <Menu.Item key="mail">
          <MailOutlined />
          One
        </Menu.Item>
        <Menu.Item key="app">
          <AppstoreOutlined />
          Two
        </Menu.Item>
      </Menu>
    );
  }
}

ReactDOM.render(<App />, document.getElementById('container'));

希望可以帮到你!

卡布琦诺 2020-04-19 14:24:18

同学你好,不是很理解同学提出“将item.type的字符串转为html标签”的初衷是什么,为什么要这么 操作呢?建议详细描述一下,以便于更加准确的定位问题并帮助解答。

祝学习愉快!

  • 提问者 迷失的小麦 #1
    item.type的字符串是<SettingOutlined />,这个需要被转为html标签,否则不显示图标(ant-design4.0版本)
    2020-04-19 14:28:22
  • 提问者 迷失的小麦 #2
    另,3.0版本的说明麻烦发给我看看,我没找到
    2020-04-19 14:34:18
  • 卡布琦诺 回复 提问者 迷失的小麦 #3
    关于ant-design3.0版本,可以打开https://3x.ant.design/index-cn,在右上角的版本框中选择版本进行查看相应版本的文档(item.type的会在下一条解答)。祝学习愉快!
    2020-04-19 15:05:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师