reactjs - jsx中的条件交替父标签
问题描述
用例:
array.map((field, index) =>{
const Wrapper = index % 2 === 0 ? <RowWrapper> : <React.Fragment>
return (
<Wrapper>
<Col md={4}>
</Col>
<Col md={2}>
</Col>
</Wrapper>
);
})
预期输出:
<RowWrapper>
<Col md={4}>
</Col>
<Col md={2}>
</Col>
<Col md={4}>
</Col>
<Col md={2}>
</Col>
</RowWrapper>
在上述场景中。基本上我希望 map 返回一个开始RowWrapper
标签但不返回结束标签,直到我映射了两个字段。
解决方案
不幸的是,我不相信 JSX 可以完全以这种方式运行,其中关闭标记是有条件地呈现的。map
但是,如果您巧妙地使用回调,输出仍然可以实现:
array.map((field, index) =>{
if (index % 2 === 0) {
return (
<RowWrapper>
<Col md={6}>current content is {array[index]}</Col>
<Col md={6}>next index content is {array[index+1]}</Col>
</RowWrapper>
);
}
return null; // just skip if this isn't an even numbered index
})
我还没有测试过,但类似的东西应该可以完成你想要的输出。显然,您希望添加对非单类场景的检查。
推荐阅读
- java - Groovy 和 Spock 之间的冲突
- flutter - 扑扑 Firestore 交易这行得通吗?
- rabbitmq - 转到 /usr/local/sbin 后,我似乎无法为 RabbitMQ 启用插件
- reactjs - 为什么 React-Bootstrap 在元素中重复自定义类名?
- c# - 无法将异步 lambda 表达式转换为委托类型“Func”
- meshlab - Meshlab:如何提取点的 x、y、z 坐标?
- database - 将一个 db 文件的列替换为另一个 db 文件的列
- html - 禁用的属性未显示在 Html.Checkbox
- c++ - 禁止转换为父级,但公开父级接口(设计问题)
- python - Python 计时器线程作为类变量从不同的类实例调用 timer.start() 和 timer.cancel()