--- order: 13 title: zh-CN: 动态校验规则 en-US: Dynamic Rules --- ## zh-CN 根据不同情况执行不同的校验规则。 ## en-US Perform different check rules according to different situations. ```jsx import { Form, Input, Button, Checkbox } from 'antd'; const formItemLayout = { labelCol: { span: 4 }, wrapperCol: { span: 8 }, }; const formTailLayout = { labelCol: { span: 4 }, wrapperCol: { span: 8, offset: 4 }, }; class DynamicRule extends React.Component { state = { checkNick: false, }; check = () => { this.props.form.validateFields(err => { if (!err) { console.info('success'); } }); }; handleChange = e => { this.setState( { checkNick: e.target.checked, }, () => { this.props.form.validateFields(['nickname'], { force: true }); }, ); }; render() { const { getFieldDecorator } = this.props.form; return (
{getFieldDecorator('username', { rules: [ { required: true, message: 'Please input your name', }, ], })()} {getFieldDecorator('nickname', { rules: [ { required: this.state.checkNick, message: 'Please input your nickname', }, ], })()} Nickname is required
); } } const WrappedDynamicRule = Form.create({ name: 'dynamic_rule' })(DynamicRule); ReactDOM.render(, mountNode); ```