reactjs - 相邻的 JSX 元素必须包含在封闭标记中。你想要一个 JSX 片段 -ReactJS
问题描述
好吧,所以我刚开始学习反应,我想做一个博客,博客的元素在一个数组中,我通过地图函数显示博客文章问题是当我向地图函数添加一些东西时,它给了我这个错误:
Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment
6 | {blog.map ( (blogs) => {return (<h2>{blogs.title}</h2>
7 |
> 8 | <button>Delete post</button>
| ^
9 | )})}
这是代码
const Blog_tem = (props) => {
const blog = props.blogs;
return (
<div className='blog_tem'>
{blog.map ( (blogs) => {return (<h2>{blogs.title}</h2>
<button>Delete post</button>
)})}
</div>
);
}
export default Blog_tem;
解决方案
每个地图项应该只有一个根元素(https://reactjs.org/docs/lists-and-keys.html):
{blog.map((blogs, i) => (
<div key={i}>
<h2>{blogs.title}</h2>
<button>Delete post</button>
</div>
))}
// with fragment if you don't want an extra element
{blog.map((blogs, i) => (
<React.Fragment key={i}>
<h2>{blogs.title}</h2>
<button>Delete post</button>
</React.Fragment>
))}
我使用数组索引作为键,但您应该使用更一致的变量,例如博客 ID。
推荐阅读
- redux-saga - 在 Redux-Saga 的上下文中会产生什么影响
- r - 聚合代码显示:model.frame.default 中的错误……可变长度不同
- flutter - How to accept Android licenses
- python - Where to write python code in anaconda
- laravel - Laravel 查询生成器 - whereHas 带有查询选择值
- javascript - 拖动时谷歌地图多边形中心不更新
- c# - SQL, combining two tables for query
- haskell - yesod 将“responseBody”转换为haskell类型
- firebase - firebase 云功能预期的承诺或价值
- javascript - JavaScript 显示/隐藏 div