一行一個標籤對應多個輸入組件,這個需求很常見但在官方例子沒看到合適的,由於官方建議:antd
注意:一個 Form.Item 建議只放一個被 getFieldDecorator 裝飾過的 child,當有多個被裝飾過的 child 時,help required validateStatus 沒法自動生成。
通過摸索,證明這樣寫是可行的,以下:佈局
<FormItem {...formItemLayout} label={'主要股東'} > <Row gutter={30}> <Col span={8}> {this.props.form.getFieldDecorator('shareholderName2', { rules: [{ required: true, message: '請輸入股東名稱' }], })(<Input placeholder={'請輸入股東名稱'} />)} </Col> <Col span={8}> <FormItem> {this.props.form.getFieldDecorator('shareholderRate2', { rules: [{ required: true, // tslint:disable-next-line:max-line-length pattern: /(^[1-9][0-9](\.\d)?$)|(^[1-9](\.\d)?$)|(^0\.\d$)/, message: '請輸入正確的持股比例', }], })(<Input addonAfter={'%'} placeholder={'請保留一位小數'}/>)} </FormItem> </Col> </Row> </FormItem>
方法就是用antd的柵格佈局來控制排列,在後面的輸入組件用FormItem
再包一層,這樣校驗位置也正確,簡直不要太爽。效果如圖:
ui