我在JSX中定义了一个React组件,它使用td
或th
返回单元格,例如:
if(myType === 'header') {
return (
<th {...myProps}>
<div className="some-class">some content</div>
</th>
);
}
return (
<td {...myProps}>
<div className="some-class">some content</div>
</td>
);
有没有可能以这样一种方式编写JSX,即HTML标记取自变量?例如:
let myTag = myType === "header" ? 'th' : 'td';
return (
<{myTag} {...myProps}>
<div className="some-class">some content</div>
</{myTag}>
);
上面的代码返回一个错误:
指向{
的“意外标记”。
我使用Webpack和Babel插件来编译JSX。
3条答案
按热度按时间wwwo4jvm1#
尝试如下设置组件状态和呈现:
fruv7luv2#
您可以执行以下操作:
请注意,这并没有真正解决您关于"动态标记"的问题,而是解决了您似乎遇到的问题。
oaxa6hgo3#
第一个答案对我的情况不起作用,所以我用另一种方法解决了它。从React documentation每个元素转换为纯JS,就像这样。
因此,可以为React组件创建如下动态元素: