Estoy tratando de hacer algo como "el campo 2 no coincide con el campo 1" (es decir, "las contraseñas no coinciden").
No hay mucha documentación sobre las reglas disponibles para los formularios antd. Ellos apuntan a este proyecto aquí .
A continuación se muestra mi forma actual:
const ResetPasswordForm = Form.create()(React.createClass({ getInitialState () { return { loading: false }; }, handleSubmit(e) { e.preventDefault(); this.props.form.validateFields((err, values) => { if (err) { failure(); } if (!err) { let newPassword = values.newPassword; let repeatNewPassword = values.repeatNewPassword; handleResetPassword(newPassword, repeatNewPassword, this.props.token); } }); }, render() { const { getFieldDecorator } = this.props.form; const newPasswordRules = [ { required: true, message: 'Please input a new password!' } ]; const repeatNewPassword = [ { required: true, message: 'Please repeat the new password!' } ]; return ( <Form onSubmit={this.handleSubmit} className="login-form"> <FormItem> {getFieldDecorator('newPassword', { rules: newPasswordRules })( <Input addonBefore={<Icon type="lock" />} type="password" placeholder="New password" /> )} </FormItem> <FormItem> {getFieldDecorator('repeatNewPassword', { rules: repeatNewPassword })( <Input addonBefore={<Icon type="lock" />} type="password" placeholder="Repeat new password" /> )} </FormItem> <FormItem> <Button loading={this.state.loading} type="primary" htmlType="submit" className={css(styles.loginButton)}> Reset Password </Button> </FormItem> </Form> ); } }));Si alguien puede indicarme la dirección correcta para crear una regla que verifique que el valor del primer campo coincida con el segundo, ¡sería increíble!
Puede encontrarlo en esta demostración de formulario de registro: https://ant.design/components/form/#components-form-demo-register
Por favor, sigue estas líneas:
<Form.Item name="password" label="Password" rules={[ { required: true, message: 'Please input your password!', }, ]} hasFeedback > <Input.Password /> </Form.Item> <Form.Item name="confirm" label="Confirm Password" dependencies={['password']} hasFeedback rules={[ { required: true, message: 'Please confirm your password!', }, ({ getFieldValue }) => ({ validator(rule, value) { if (!value || getFieldValue('password') === value) { return Promise.resolve(); } return Promise.reject('The two passwords that you entered do not match!'); }, }), ]} > <Input.Password /> </Form.Item>