Popover 气泡
在点击控件或者某个区域后,浮出一个气泡菜单来做更多的操作。如果设置了遮罩层,建议通过点击遮罩层的任一位置,进行退出。
代码演示
气泡
import { Popover, NavBar, Icon } from 'antd-mobile';
const Item = Popover.Item;
const myImg = src => <img src={`https://gw.alipayobjects.com/zos/rmsportal/${src}.svg`} className="am-icon am-icon-xs" alt="" />;
class App extends React.Component {
state = {
visible: true,
selected: '',
};
onSelect = (opt) => {
// console.log(opt.props.value);
this.setState({
visible: false,
selected: opt.props.value,
});
};
handleVisibleChange = (visible) => {
this.setState({
visible,
});
};
render() {
return (<div>
<NavBar
mode="light"
rightContent={
<Popover mask
overlayClassName="fortest"
overlayStyle={{ color: 'currentColor' }}
visible={this.state.visible}
overlay={[
(<Item key="4" value="scan" icon={myImg('tOtXhkIWzwotgGSeptou')} data-seed="logId">Scan</Item>),
(<Item key="5" value="special" icon={myImg('PKAgAqZWJVNwKsAJSmXd')} style={{ whiteSpace: 'nowrap' }}>My Qrcode</Item>),
(<Item key="6" value="button ct" icon={myImg('uQIYTFeRrjPELImDRrPt')}>
<span style={{ marginRight: 5 }}>Help</span>
</Item>),
]}
align={{
overflow: { adjustY: 0, adjustX: 0 },
offset: [-10, 0],
}}
onVisibleChange={this.handleVisibleChange}
onSelect={this.onSelect}
>
<div style={{
height: '100%',
padding: '0 15px',
marginRight: '-15px',
display: 'flex',
alignItems: 'center',
}}
>
<Icon type="ellipsis" />
</div>
</Popover>
}
>
NavBar
</NavBar>
</div>);
}
}
ReactDOM.render(<App />, mountNode);
API
Popover
属性 | 说明 | 类型 | 默认值 |
---|
visible | 当前显隐状态 | Boolean | false |
onVisibleChange | 当显隐状态变化时回调函数 | (visible: bool): void | - |
placement | enum{'left','right','top','bottom', 'topLeft', 'topRight', 'bottomLeft', 'bottomRight'} | String | 'bottomRight' |
mask | 是否显示遮罩背景层 | Boolean | false |
overlay | 弹出层内容 | ReactNode | - |
onSelect | 选中某选项时的回调函数 | (node: any, index?: number): void | - |
更多 API 可查看 rmc-tooltip### Popover.Item#属性 | 说明 | 类型 | 默认值 |
---|
disabled | 是否禁用 | Boolean | false |
style | item 样式 | Object | - |
icon | icon | ReactNode | - |