1、在antd中,Select组件在Form中使用,并设置initialValue后,Select的placeholder就失效了:
<Form.Item label="测试">
{getFieldDecorator('test', {
initialValue: '',
})(
<Select placeholder='请在这里选择'>
<Option value="jack">Jack</Option>
</Select>
)}
</Form.Item>
解决方案:initialValue: isTrue ? 'xxxx' : undefined,
类似的还有,form中的日期datePicker相关的日期为空值时,初始值要用 null
2、Tree组件自定义title,包含Checkbox时,title中的checkbox只能点击一次。
还未解决的疑问:为什么点击的onClick就不会有这个问题呢?
相关源代码:
<Tree
checkable
onExpand={onExpand}
expandedKeys={expandedKeys}
autoExpandParent={autoExpandParent}
onCheck={onCheck}
checkedKeys={checkedKeys}
onSelect={onSelect}
selectedKeys={selectedKeys}
treeData={treeData}
titleRender={onTitleRender} />
相关方法:
const onTitleRender = (nodeData) => {
return <div >
{nodeData.title}
<a style={{ margin: '0 15px'}} onClick={handleClickRename}>重命名</a>
<Checkbox onChange={handleChangeCheck}/>排序
</div>
}
const handleChangeCheck = (e) => {
e.stopPropagation()
console.log(e) // 这里只能进来打印一次 }
解决title中checkbox点击问题:在自定义title的那个外层div中设置阻止冒泡的方法。
const onTitleRender = (nodeData) => {
return <div onClick={e => e.stopPropagation()}>
{nodeData.title}
<a style={{ margin: '0 15px'}} onClick={handleClickRename}>重命名</a>
<Checkbox onChange={handleChangeCheck}/>排序
</div> }