美文网首页
andt表单数据存储于上层组件 通过使用 onFieldsCha

andt表单数据存储于上层组件 通过使用 onFieldsCha

作者: 坑的心都碎了 | 来源:发表于2018-07-10 10:23 被阅读0次
    import { Form, InputNumber } from 'antd';
    
    const FormItem = Form.Item;
    
    function validatePrimeNumber(number) {
      if (number === 11) {
        return {
          validateStatus: 'success',
          errorMsg: null,
        };
      }
      return {
        validateStatus: 'error',
        errorMsg: 'The prime between 8 and 12 is 11!',
      };
    }
    
    class RawForm extends React.Component {
      state = {
        number: {
          value: 11,
        },
      };
    
      handleNumberChange = (value) => {
        this.setState({
          number: {
            ...validatePrimeNumber(value),
            value,
          },
        });
      }
    
      render() {
        const formItemLayout = {
          labelCol: { span: 7 },
          wrapperCol: { span: 12 },
        };
        const number = this.state.number;
        const tips = 'A prime is a natural number greater than 1 that has no positive divisors other than 1 and itself.';
        return (
          <Form>
            <FormItem
              {...formItemLayout}
              label="Prime between 8 & 12"
              validateStatus={number.validateStatus}
              help={number.errorMsg || tips}
            >
              <InputNumber
                min={8}
                max={12}
                value={number.value}
                onChange={this.handleNumberChange}
              />
            </FormItem>
          </Form>
        );
      }
    }
    
    ReactDOM.render(<RawForm />, mountNode);
    

    解决方案

    需要从redux中回填错误信息去显示表单校验错误

    {
      "username": {
        "value": "benjycui11",
        "name": "username",
        "touched": true,
        "dirty": false,
        "validating": false
      }
    }
      mapPropsToFields(props) {
        return {
          username: Form.createFormField({
            ...props.username,
            value: props.username.value,
          }),
        };
      },
    

    相关文章

      网友评论

          本文标题:andt表单数据存储于上层组件 通过使用 onFieldsCha

          本文链接:https://www.haomeiwen.com/subject/wicfpftx.html