javascript - SyntaxError:相邻的 JSX 元素必须包含在封闭标记中
问题描述
我尝试在页面中显示文章,但我遇到了一些问题,需要在 reactjs 中包装封闭标签。看起来 React 不接受彼此相邻的相同标签如何显示表格数据?
render() {
return (
<div className="blogpost">
{this.state.articles.map((news, i) => {
return (
<div className="image-wrapper">
<img className="responsive-img" src="http://loremflickr.com/320/240" />
</div>
<div className="content" key={i}>
<h4>{news.tittle}</h4>
<p>{news.content}</p>
</div>
<div className="footer">
<div className="row">
<div className="footer-content">
<i className="material-icons">today</i>
<span>{this.formatDate(news.created)}</span>
</div>
<div className="footer-content">
<i className="material-icons">chat bubble outline</i>
<a href="">6</a>
</div>
</div>
</div>
<div className="read-more">
<a href="">Read more</a>
</div>
);
})};
</div>
);
};
有谁知道问题出在哪里?
解决方案
实际上,渲染应该返回单个根元素,因此所有内容都应该包含在一个根元素中。
例如:
如果您将执行以下操作
render() {
return(
<li></li>
<li></li>
<li></li>
<li></li>
);
}
或者
render() {
return(
<div>....</div>
<div>....</div>
<div>....</div>
<div>....</div>
);
}
您将收到与当前情况相同的错误(“..需要包装的封闭标签”)。
所以你需要做的就是将它们包装在单根中。
render() {
return(
<React.Fragment>
<div>....</div>
<div>....</div>
<div>....</div>
<div>....</div>
</React.Fragment>
);
}
或者
render() {
return(
<div>
<div>....</div>
<div>....</div>
<div>....</div>
<div>....</div>
</div>
);
}
仅供参考:对于相似的兄弟姐妹,您还需要考虑唯一键....
推荐阅读
- javascript - 完成后是否需要删除 FileReader() 的事件侦听器?
- python - Python __getattr__ 调用并进入无限递归,即使属性不丢失
- c++ - 此代码是否会产生物化的基本纯右值,是否应该编译?
- python - 来自另一个 Django 模型的 Django 模型 max_length
- python - Python Find_Element_by_xxx 突然停止工作
- java - Java - 如何为 TextFields 创建一个循环?
- elixir - 自定义混合任务在运行时不触发编译
- python - 如何使用 Pandas ExcelWriter 将空工作表添加到现有工作簿中
- 2sxc - 2SXC 无法进行干净的 DNN 9.3.2 安装
- php - 如何让 Laravel 与 AWS 上的 Redis 集群一起工作