[英]Can dangerouslySetInnerHTML preserve tag name case?
I have the following: 我有以下几点:
this.props.message = '<NavLink to="/mypage">Click Me</NavLink>';
Which I want to render, so using dangerouslySetInnerHTML
I try 我要渲染的,所以我尝试使用dangerouslySetInnerHTML
dangerouslySetInnerHTML={{ __html: this.props.message }}
But it renders <navlink to="/mypage">Click Me</navlink>
(notice tag names all lower case) 但是它会呈现<navlink to="/mypage">Click Me</navlink>
(注意,标记名称全部为小写)
Which means the <NavLink />
component is now not recognised. 这意味着<NavLink />
组件现在无法识别。
Is there a way to preserve the case? 有办法保存案件吗?
As @Felix mentioned, dangerouslySetInnerHTML
is for rendering HTML, not JSX. 作为@Felix提到, dangerouslySetInnerHTML
是渲染HTML,不JSX。
this.props.message = <NavLink to="/mypage">Click Me</NavLink>;
You should be able to just render this as: 您应该能够将其呈现为:
{this.props.message}
Alternatively, you could use a render
prop: 或者,您可以使用render
道具:
import React from "react";
import ReactDOM from "react-dom";
const A = ({ render, children }) => {
return <div style={{ fontSize: 40 }}>{render(children)}</div>;
};
const B = ({ name }) => {
return <div style={{ color: "red" }}>{name}</div>;
};
const App = () => {
return (
<A
render={name => {
return <B name={name} />;
}}
>
Colin
</A>
);
};
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.