使用reactjs验证对象数组

问题描述

我正在使用ReactJS创建一个表单,其中输入字段将存储在数组和字符串中。

如果该字段为字符串,则可以验证并且可以正常工作,如下所示:

 async handleSubmit(event) {
    event.preventDefault();
    console.log('form submission data',this.state);
    if (this.state.harvest_type === "single_harvest" && this.state.harvest_unit === "") {
        this.setState({
            alertMessage: "Please select Harvest unit",showAlert: true,alertcolor: "warning"
        })
    } else if (this.state.zone === "" || this.state.seeding_unit === "") {
        this.setState({
            alertMessage: "Please select zone & input metrics",alertcolor: "warning"
        })
    }

我还有另一个动态输入字段,它存储在如下数组中:

{this.state.custom_fields.map((item1,idx) => (
<tr id={"nested" + idx} key={idx}>
    <td>
        <Row className="mb-2">
            <Col md="10">
                <Label className="col-form-label">{this.state.custom_fields[idx].name}<span style={{ color: "red" }}>*</span></Label>
                <Input
                    type={this.state.custom_fields[idx].type}
                    id={"name_" + idx}
                    onChange={this.handleChange}
                    value={this.state.custom_fields[idx].value}
                    className="inner form-control"
                   required="required"
                />
            </Col>

        </Row>
    </td>
</tr>
))}

我需要验证以上字段。如果用户未输入,则应抛出一条消息。我该怎么办?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)