我有一个在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}>
);
上面的代码返回错误“意外令牌”指向{.我正在使用带有babel插件的webpack来编译JSX.
解决方法
尝试设置组件状态并像这样渲染:
render: function() {
return(
<this.state.tagName {...myProps}>
<div className="some-class">some content</div>
</this.state.tagName>
);
},