我的 Map 下面有什么问题?一切都包好但我仍然得到 jsx must wrap with an enclosing tag
的错误
<div className="col-md-12">
{items.map(obj => {
<h2 className="title">{obj.name}</h2>
<p className="edited">Last updated on {obj.updated_at}</p>
<div className="actions_wrap">
<Link to="/item/edit/"{obj._id}>Edit</Link>
<a>Delete</a>
</div>
})}
</div>
如果我用 div
包装东西,这行有错误:
<Link to="/item/edit/"{obj._id}>Edit</Link>
3 回答
JSX具有当前限制,从而只能从语句返回1个顶级节点 .
来自JSX in depth
如果你的例子,你有3个节点作为彼此的兄弟:h2,p和div .
您可以通过将它们全部包装在1个顶级容器中来解决此问题:
您对
.map
的调用会返回多个元素 . 也许你应该将它包装在_2527044中?考虑一下你的 Map 正在返回什么 . jsx中的每个DOM元素本质上都是一个对象,因此你的 Map 试图返回javascript中不允许的几个东西 . 在jsx中解决这个问题的方法是用另一个dom元素包装一个dom元素的集合,以便内容保持不变,但是你正在满足javascript的要求,即函数只返回一个东西 .