1、组件赋值,包括日期选择组件,最近更新了新的必须用 dayjs,必须要补充dayjs的一些无聊,国际化什么的。
"dayjs": "^1.10.7", 必须采用这个版本
2、CloseTag 遇见 key 不渲染的问题
3、Radio Group 赋值不行。默认值出现问题
4、时间范围选择器不行。没有一次性选择的,antd 就有。
5、a&&<div>123456789</div> 出现0,那我们怎么办?!!a&&<div>123456789</div> 保证正确
6、CloseTag 不能定制close icon ,但是antd就行。
7、refs遇见redux就不行了。
8、alifd组件如何不能选择当前以前日期
<DatePicker name='receiveEndTime' value={form['receiveRuleTypeAttributes']['receiveEndTime'] && unixTimeSpanFormate(form['receiveRuleTypeAttributes']['receiveEndTime'], "yyyy-MM-dd HH:mm:ss")} onChange={(val) => { this.handleFormItemChangeSpecial(val, 'receiveRuleTypeAttributes', 'receiveEndTime') }} style={{ "162px" }} disabledDate={this.disabledDate} />
disabledDate = (time, view) => { return moment().diff(time, 'days') > 0 }
9、alifd的select下拉时,在滑动滚轮时会出问题,上面和下面会出现分离。
<FormItem label='发送对象' required requiredMessage='请选择发送对象' style={{ marginBottom: "20px" }}> <Select popupContainer='dr' name='groupId' value={form["groupId"] + ""}> {form["groupId"] && <Option value={form["groupId"] + ''}>{form["groupId"] + ""}</Option>} </Select> <div id='dr'> </div> </FormItem>
<div id='dr'></div> 要有一个层,将popupContainer='dr' 设置为这个层就行了。
10、自定义组件的思维:
onCallBack和refs
11、alifd的样式可以定义
12、fd 自定义高级验证
<FormItem label='子任务名称:' required hasFeedback requiredMessage='请输入子任务名称' validator={fusionDebounce(this.titleExists, 1000)} >
export function fusionDebounce(action, idle) { let timer; return function() { // tslint:disable-next-line: no-this-assignment const context = this; const args = arguments; return new Promise((resolve, reject) => { clearTimeout(timer); timer = setTimeout(() => { action.apply(context, args) .then(r => { resolve(r); }) .catch(err => { reject(err); }); }, idle); }); };D }
titleExists = (rules, value) => { const { subTask: { tmpName } } = this.props; const { location: { query: { editType = '0' } } } = this.props.history; return new Promise((resolve, reject) => { if (value.length > 20) { reject([new Error('任务名称不能大于20')]); } if (editType === '1' && value === tmpName) { resolve(); return; } checkDupName(value).then(r => { if (r.result === true) { reject('该子任务名称已被使用'); return; } resolve(); }).catch(err => { Message.error('网络出错'); }); }); };
4、alifd。在使用redux时,如果将表单的数据放到redux里面,那么只能输入英文,是因为redux模型变化引起弹框重新绘制导致的,所以我们不能使用value,我们应该使用defalutvalue
5、自定义的表单内控件不支持,但是antd支持,antd怎么支持的https://www.cnblogs.com/sexintercourse/p/15943893.html