【发布时间】:2018-09-08 08:42:02
【问题描述】:
这里我遇到了验证问题,我想渲染 5 个项目的列表,列表中的所有字段都相同,下面是代码
ListData = () => {
let a = [];
for (var i = 0; i < 5; i++) {
a.push(<ListItemView value={i} key={i} />); // Component
}
return a;
};
render() {
return (
<div>
<List>{this.ListData()}</List> // List of 5 items
<Button disabled={this.props.disabledSubmission}
color="primary"type="submit">
Invite Members
</Button>
)
}
字段组件
const ListItemView = ({ value }) => {
return (
<ListItem>
<div className="col-12 w-100">
<div className="row">
<div className="col-lg-4 col-sm-5 col-12">
<Field
name={`${value}-name`} // 0-name
component={renderTextField}
label="Name"
className="mt-1"
fullWidth
margin="normal"
/>
</div>
<div className="col-lg-5 col-sm-5 col-12">
<Field
name={`${value}-email`} // 0-email
component={renderTextField}
label="Email"
className="mt-1"
fullWidth
margin="normal"
type="email"
/>
</div>
</div>
</div>
</ListItem>
);
};
问题是,当我尝试使用 redux 表单进行验证时,我很困惑如何使用它的名称验证每个字段 - 0-name,0-email,等等...
那么,我如何通过循环或其他方式检查它,从而使每个字段的验证工作都静态地编写类似这样的内容
const validation = (values) => {
const errors = {};
if(!values[`0-name`]) {
errors.values[`0-name`] = 'Required'
} else if(!values[`0-email`]) {
errors.values[`0-email`] = 'Required'
}
if(!values[`1-name`]) {
errors.values[`1-name`] = 'Required'
} ... // and many more...
return errors;
};
【问题讨论】:
标签: reactjs redux react-redux redux-form redux-thunk