在 ant design 中将渲染字符串反应为 HTML
React render string as HTML in ant design
我正在使用 ant design 下拉菜单。我有来自 API 的动态数据,当我尝试将这些数据渲染到 dropdown menu 时,它以字符串形式呈现。
所以我使用这个 react-html-parser 库将字符串呈现为 HTML 但它不起作用。
renderSocialMedia = () => {
if (this.props.weblookup) {
let socialmedialookup = this.props.weblookup
webitems = ""
return socialmedialookup.map((k, index) => {
if (k.name.toLowerCase() != "other")
return webitems = "<Menu.Item key=" + k.id + ">" + k.name + "</Menu.Item>"
})
}
}
{ReactHtmlParser(webitems)}
<FormItem>
{getFieldDecorator('AddNetwork', {
initialValue: "",
})(
<Dropdown overlay={
<Menu onClick='{this.handleMenuClick}'>
<div>{ReactHtmlParser(webitems)}</div>
</Menu>
} trigger={['click']}>
<a className="ant-dropdown-link" href="#">
Add Username
<Icon type="down" />
</a>
</Dropdown>
)}
输出:
当您使用 React 时,您必须正确格式化 DOM 元素。所以,试试这个,
return webitems = <Menu.Item key={ k.id }>{ k.name}</Menu.Item>
希望对您有所帮助。 编码愉快!!
我正在使用 ant design 下拉菜单。我有来自 API 的动态数据,当我尝试将这些数据渲染到 dropdown menu 时,它以字符串形式呈现。
所以我使用这个 react-html-parser 库将字符串呈现为 HTML 但它不起作用。
renderSocialMedia = () => {
if (this.props.weblookup) {
let socialmedialookup = this.props.weblookup
webitems = ""
return socialmedialookup.map((k, index) => {
if (k.name.toLowerCase() != "other")
return webitems = "<Menu.Item key=" + k.id + ">" + k.name + "</Menu.Item>"
})
}
}
{ReactHtmlParser(webitems)}
<FormItem>
{getFieldDecorator('AddNetwork', {
initialValue: "",
})(
<Dropdown overlay={
<Menu onClick='{this.handleMenuClick}'>
<div>{ReactHtmlParser(webitems)}</div>
</Menu>
} trigger={['click']}>
<a className="ant-dropdown-link" href="#">
Add Username
<Icon type="down" />
</a>
</Dropdown>
)}
输出:
当您使用 React 时,您必须正确格式化 DOM 元素。所以,试试这个,
return webitems = <Menu.Item key={ k.id }>{ k.name}</Menu.Item>
希望对您有所帮助。 编码愉快!!