reactjs - 使用数组映射函数将 JSX 格式化为渲染
问题描述
let typeOpt = [];
let specialityOpt = [];
let planOpt = [];
let acceptOpt = [];
let officeOpt = [];
let doctorOpt = [];
<div>
{typeOpt.map((typeOp,index) => (
<FormGroup row>
<FormControlLabel
control={
<Checkbox
checked={this.state.checkedItem}
onChange={this.handleChange('checkedItem')}
value="checkedB"
color="primary"
/>
}
label={typeOp.label}
/>
</FormGroup>
))}
</div>
<div>
{specialityOpt.map((specialityOp,index) => (
<FormGroup row>
<FormControlLabel
control={
<Checkbox
checked={this.state.checkedItem}
onChange={this.handleChange('checkedItem')}
value="checkedB"
color="primary"
/>
}
label={specialityOp.label}
/>
</FormGroup>
))}
</div>
<div>
{planOpt.map((planOp,index) => {
<FormGroup row>
<FormControlLabel
control={
<Checkbox
checked={this.state.checkedItem}
onChange={this.handleChange('checkedItem')}
value="checkedB"
color="primary"
/>
}
label={planOp.label}
/>
</FormGroup>
})}
{acceptOpt.map((acceptOp,index) => {
<FormGroup row>
<FormControlLabel
control={
<Checkbox
checked={this.state.checkedItem}
onChange={this.handleChange('checkedItem')}
value="checkedB"
color="primary"
/>
}
label={acceptOp.label}
/>
</FormGroup>
})}
{officeOpt.map((officeOp,index) => {
<FormGroup row>
<FormControlLabel
control={
<Checkbox
checked={this.state.checkedItem}
onChange={this.handleChange('checkedItem')}
value="checkedB"
color="primary"
/>
}
label={officeOp.label}
/>
</FormGroup>
})}
</div>
<div>
{doctorOpt.map((doctorOp,index) => (
<FormGroup row>
<FormControlLabel
control={
<Checkbox
checked={this.state.checkedItem}
onChange={this.handleChange('checkedItem')}
value="checkedB"
color="primary"
/>
}
label={doctorOp.label}
/>
</FormGroup>
))}
</div>
以下是代码片段。这里最初有 6 个不同的数组,并假设所有的数组都包含各种数据。
以及渲染函数中的其余代码。
有人可以让我知道如何格式化 JSX 代码,因为代码有很多重复。
如何只编写一个 FormGroup 和 FormControlLabel 并将其放入不同的数组中,然后 onClick wodul 返回该特定 id 的复选框名称和 id。
问候
解决方案
尝试这样的事情
let arrays = ['typeOpt','specialityOpt',...]
{ arrays.map((itemOpt) => (
<div>
{itemOpt.map((itemOp,index) => (
<FormGroup row>
<FormControlLabel
control={
<Checkbox
checked={this.state.checkedItem}
onChange={this.handleChange('checkedItem')}
value="checkedB"
color="primary"
/>
}
label={itemOp.label}
/>
</FormGroup>
))}
</div>
)}
推荐阅读
- python - Arduino 到 Raspberry Pi SPI 接口通信
- vue.js - Vue Cli init my-app 引发“太多参数”
- list - 如何在 Scheme 中增加列表和矩阵?
- powershell - 存在强制参数时,PowerShell 报告无效错误行号
- python - 仅使用 IPython 时出现 ImportError
- xamarin.android - 无法从 TimePicker 获取 NumberPickers - Android 版本 7.0 (API 24)
- windows - .bat 文件如何对 list.txt 中的每一行重复处理(按列表创建快捷方式)
- ruby-on-rails - 如何在rails中获取current_sign_in_ip
- javascript - 从javascript中的字符串数组中匹配并删除给定字符串中的字符串
- codeception - Codeception mock,如何提供方法参数列表