【发布时间】:2017-01-17 12:37:36
【问题描述】:
我有一个组件来显示一种目录。我正在努力应对,因为它正在创建一个跨度标签,据我所知,它不应该。
渲染函数为:
render() {
return(
<ul>
{
this.state.contents.map(function(li, i) {
let subItems = li.subItems.map(function(subLi, j) {
return (
<li>
<span>{subLi.title}</span>
</li>
)
}, this);
return (
<li tabIndex={i}>
<span><i class="fa fa-caret-right" />{li.title}</span>
<ul class="subitens">
{subItems}
</ul>
</li>
);
}, this)
}
</ul>
);
<span><i class="fa fa-caret-right" />{li.title}</span> 行正在创建以下结构:
<span>
<i></i>
<span>Parent 1</span>
</span>
我想:
<span><i></i> Parent 1</span>
我的文本周围的 span 正在与我的 CSS 混淆。
我用小提琴把它包起来:https://jsfiddle.net/fpcvzsLo/
关于我哪里出错了有什么想法吗?
谢谢!
【问题讨论】:
-
也有同样的问题,但这就是反应的工作方式。它将所有文本包装在跨度内,而不是创建文本节点。不确定是否可以修复。
-
:( 谢谢 degr,我以为我弄错了一些基本的 JSX...
-
试试这个:
<i class="fa fa-caret-right">{li.title}</i>' dont use thespan` -
我实际上在我的项目中使用
react-html-attrs插件,所以这应该不是问题(粘贴到 jsfiddle 时忘记了)。我尝试了 className 并得到了相同的结果
标签: javascript reactjs jsx