我正试着在tagname
的基础上分组blogdetails
.点击第二个加号按钮,我想将所有博客详细信息分组到每个标记名下.目前,它忽略了分组,只显示标记名.
有没有人能告诉我这里可能出了什么问题?
我已经添加了代码Sandbox 链接以供参考:
https://codesandbox.io/s/eloquent-sound-dzpohx?file=/src/App.js个
const detailsTag = [
{
id: 1,
tagname: "react",
blogdetails: "React State details"
},
{
id: 2,
tagname: "unix",
blogdetails: "Unix grep command"
},
{
id: 3,
tagname: "cypress",
blogdetails: "Cypress request command"
},
{
id: 4,
tagname: "react",
blogdetails: "Usage of Context in React"
},
{
id: 5,
tagname: "unix",
blogdetails: "Unix list command"
},
{
id: 6,
tagname: "react",
blogdetails: "How to use useMemo in react hooks"
},
]
const [detailsTags, setDetailsTags] = useState(detailsTag);
const [filterTags, setFilterTags] = useState([]);
const tags = filterTags.reduce((tags, tag) => {
if (!tags[tag.tagname]) tags[tag.tagname] = [];
tags[tag.tagname].push(tag.tagname);
return tags;
}, {});
<div className='groupbyTags'>
<div className='row'>
<div className='plusBtn'>
<input onClick={handleClick} style={style} type="button" value="+"> </input>
</div>
{isShown && (
<div className='groupByTagData'>
{
groupTags.map(({ id, count, tagname }) => (
<div key={id} className='row'>
<div className='groupByTagInfo'>
<input id="childBlogBtn" onClick={() => showFullDetails(id)} style={style} type="button" value="+"></input>
</div>{" "} <br></br>
{isShownFullDetails === id && (
<div className='groupByTagRecord'>
{
Object.entries(tags).map(([tagname, blogdetails]) => (
<div key={tagname} className="blogdata">
{blogdetails.map((data) => (
<span key={data} className="data-1">
{data.blogdetails}
</span>
))}
</div>
))
}
</div>
)}
<div className="groupByTagInfo">
<span className="groupByTagCount">{count}</span>
</div>
<div className="groupByTagInfo">
<span className="groupByTagName">{tagname}</span>
</div>
</div>
))}
</div>
)}
</div>
</div>
Desired grouping of blog details for each tag looks as below: