import './demo7.css'; import Menu from '..'; import React from 'react'; import ReactDOM from 'react-dom'; const { SubMenu, Item, Divider } = Menu; interface PageStates{ selectedKeys:Array; } class Demo extends React.Component<{}, PageStates> { createContextMenu: (e: any) => void; constructor(props) { super(props); this.createContextMenu = e => { e.preventDefault(); const target = e.target; const { top, left } = target.getBoundingClientRect(); Menu.create({ target: e.target, offset: [ e.clientX - left, e.clientY - top ], className: 'context-menu', popupClassName: 'context-menu', onItemClick: console.log, selectedKeys: this.state.selectedKeys, selectMode: 'multiple', onSelect: this.handleSelect, children: [ Option 1, Option 2, Option 3, , Sub option 1 Sub option 2 , Option 4, , Option 5, ], }); }; this.state = { selectedKeys: [], }; this.handleSelect = this.handleSelect.bind(this); } handleSelect(selectedKeys) { selectedKeys = selectedKeys.filter(key => { return [ 'sub-1', 'sub-2' ].indexOf(key) > -1; }); this.setState({ selectedKeys, }); } render() { return (
Right click here to see the context menu!
); } } ReactDOM.render( , document.getElementById('menu-demo-7'), );