UNPKG

cjd-parkball

Version:

> 中后台业务组件库,中后台就像公园,进入需要买门票(登录),所以以 Parkball(公园球) 命名,公园内必定捕获!作为一个组件库,提供使用方法文档,方便开发者的调用

97 lines (84 loc) 2.16 kB
--- category: 23 title: 动态校验规则 title_en: Dynamic Rules --- zh-CN 根据不同情况执行不同的校验规则。 en-US Perform different check rules according to different situations. ````jsx import { Form, Input, Button, Checkbox } from 'parkball'; const FormItem = Form.Item; 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 ( <div> <FormItem {...formItemLayout} label="Name"> {getFieldDecorator('username', { rules: [{ required: true, message: 'Please input your name', }], })( <Input placeholder="Please input your name" /> )} </FormItem> <FormItem {...formItemLayout} label="Nickname"> {getFieldDecorator('nickname', { rules: [{ required: this.state.checkNick, message: 'Please input your nickname', }], })( <Input placeholder="Please input your nickname" /> )} </FormItem> <FormItem {...formTailLayout}> <Checkbox value={this.state.checkNick} onChange={this.handleChange} > Nickname is required </Checkbox> </FormItem> <FormItem {...formTailLayout}> <Button type="primary" onClick={this.check}> Check </Button> </FormItem> </div> ); } } const WrappedDynamicRule = Form.create()(DynamicRule); ReactDOM.render(<WrappedDynamicRule />, mountNode); ````