您好,请问下,我有一个字符串,如何用这个字符串作为JSX来使用呢?
const str = "AppComp"
我想要得到这样的JSX:
<AppComp/>
请问如何基于str这个字符串变量做到<AppComp/>
?
更新1
因为其他地方已经定义了AppComp,所以直接引入,但是在这进行字符串创建JSX名称使用。
您好,请问下,我有一个字符串,如何用这个字符串作为JSX来使用呢?
const str = "AppComp"
我想要得到这样的JSX:
<AppComp/>
请问如何基于str这个字符串变量做到<AppComp/>
?
因为其他地方已经定义了AppComp,所以直接引入,但是在这进行字符串创建JSX名称使用。
const str = "AppComp";
const Element = str;
function MyComponent() {
return <Element />;
}
或者:
const str = "AppComp";
const element = React.createElement(str, null);
function MyComponent() {
return element;
}
不知道是否可以
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
JSX 的解析是在编译期完成的,这意味着试图在运行时生成 JSX ,需要把编译器搬到运行时,技术上并非做不到,但是没有必要。
好在作为 JS 的超集,JSX 同样拥有 JS 的灵活性,像这种 string => JSX.Element 的需求可以这样实现: