javascript - 条件关闭标签 ReactJS
问题描述
我有这种 json 响应:
{id: 1, name: a}
{id: 2, name: b}
{id: 3, name: c}
{id: 4, name: d}
{id: 5, name: e}
{id: 6, name: f}
我想在我的 React 组件中将它们按 2 分组,如下所示:
<div className="group-item">
<div className="item">a</div>
<div className="item">b</div>
</div>
<div className="group-item">
<div className="item">c</div>
<div className="item">d</div>
</div>
ETC...
我试过了,但我不知道如何有条件地关闭标签:
return _.map(items, (item, i) => {
let groupStart, groupEnd;
i % 2 === 0 ? groupStart = <div className="group-item"> : groupEnd = </div>
return (
groupStart + item.name + groupEnd
);
});
你有一些技巧来实现这一目标吗?
解决方案
您可以简单地预处理数据并先对其进行分组,然后再渲染,而不是有条件地关闭标签
const data = [
{id: 1, name: 'a'},
{id: 2, name: 'b'},
{id: 3, name: 'c'},
{id: 4, name: 'd'},
{id: 5, name: 'e'},
{id: 6, name: 'f'}
];
const res = data.reduce((acc, item, index) => {
if(index % 2 == 0) {
acc.push([item])
} else {
acc[Math.floor(index/2)].push(item);
}
return acc;
}, [])
return _.map(res, (item, i) => {
return (
<div className="group-item" key={i}>
<div>{item[0].name}</div>
<div>{item[1].name}</div>
</div>
});
推荐阅读
- c# - 在 Serilog 中记录没有异常堆栈跟踪
- java - java进程文件描述符丢失并移动到/dev/null
- javascript - Slack bolt-app:传入事件没有对话 ID
- oracle - 使用沙盒在 oracle fusion 中创建按钮
- reactjs - 我如何将 redux 操作移动到单独的文件
- azure - Azure 条件访问,专门通过 Azure VPN 客户端
- mysql - MySQL - 选择另一个表中条目最多的条目
- javascript - Django 使用 Ajax 进行动态过滤
- api - 如何在 Swiftui Ios 模拟器屏幕中显示发布方法请求数据?
- javascript - 调度中的返回函数没有被调用!redux-thunk