今天在使用select时搜索后没有选定搜索的内容后,鼠标滚动时发现搜索框内容分离问题。
需要在select中添加getPopupContainer参数来使搜索内容渲染到器父节点上。不加该参数搜索展示内容默认是展示在body上的,所以才有分离显示现象。
const {
Select
} = antd;
const Option = Select.Option;
var Hello = React.createClass({
render() {
return <div style={{margin: 10, overflow: 'scroll', height: 200}}>
<h2>修复滚动区域的浮层移动问题 / please try open select and scroll the area</h2>
<div style={{padding: 100, height: 1000, background: '#eee', position: 'relative' }} id="area">
<h4>可滚动的区域 / scrollable area</h4>
<Select defaultValue="lucy" style={{ width: 120 }}
getPopupContainer={() => document.getElementById('area')} //该参数是设置搜索的内容渲染到父元素id为area上
>
<Option value="jack">Jack</Option>
<Option value="lucy">Lucy</Option>
<Option value="yiminghe">yiminghe</Option>
</Select>
</div>
</div>;
}
});
ReactDOM.render(<Hello />,
document.getElementById('container')
);