【问题标题】:How to make field validation?如何进行字段验证?
【发布时间】:2020-06-25 06:08:33
【问题描述】:

如何进行字段验证?

我有一个带有字段的对象,我从中生成一个表单,提交时,我需要检查每个字段以使其不为空,我这样做了,但它不起作用

我的表格:

    const [volunteerData, setVolunteerData] = useState({
    fullName: {
      value: '',
      type: "text",
      placeholder: "Name",
      label: "Name"
    },
    phone: {
      value: '',
      type: "text",
      placeholder: "Phone number",
      label: "Phone number",
      mask: "+7(999) 999 99 99"
    }
    )}

渲染表单:

const onHandleRenderForm = () => {
    return Object.keys(volunteerData).map((items, idx) => {
        const control = volunteerData[items];
        return (
            <div key={idx} className="content-data-box">
                <label>{control.label}</label>
                <InputMask 
                    type={control.type} 
                    placeholder={control.placeholder}
                    mask={control.mask}
                    onChange={e => onHandleFormData(e, items)}
                />
            </div>
        )
    })
};

onChange 输入:

const onHandleFormData = (e, items) => {
    const before = {...volunteerData};
    const after = {...before[items]}

    after.value = e.target.value;
    
    before[items] = after;
    setVolunteerData(before);
};

onClick(提交按钮):

const onHandleErrorBoundary = () => {
    Object.keys(volunteerData).map(items => {
        const errorData = items.value === '';
        console.log(errorData)
    })
};

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    items.value === '' 更改为volunteerData[items].value !== ""

    const onHandleErrorBoundary = () => {
        Object.keys(volunteerData).map(items => {
          const errorData = volunteerData[items].value !== "";
          return console.log(errorData);
        });
    };
    

    你可以在这里查看codesandbox

    【讨论】:

    • 还有className怎么设置,这个字段是空的?
    • @reactchel 您可以将错误输入的索引存储在新状态中并在渲染中检查错误以添加类,请查看codesandbox
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 2023-04-09
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多