# 右键菜单
- order: 0
右键菜单示例
---
````jsx
import { Tree, Tooltip } from 'antd';
import assign from 'object-assign';
const TreeNode = Tree.TreeNode;
function contains(root, n) {
let node = n;
while (node) {
if (node === root) {
return true;
}
node = node.parentNode;
}
return false;
}
const Demo = React.createClass({
propTypes: {},
componentDidMount() {
this.getContainer();
document.body.onclick = (e) => {
// console.log(e.target);
if (contains(this.cmContainer, e.target)) {
return;
}
this.componentWillUnmount();
this.toolTip = null;
};
},
componentWillUnmount() {
if (this.cmContainer) {
ReactDOM.unmountComponentAtNode(this.cmContainer);
document.body.removeChild(this.cmContainer);
this.cmContainer = null;
}
},
onSelect(info) {
console.log('selected', info);
},
onRightClick(info) {
console.log('right click', info);
this.renderCm(info);
},
onMouseLeave(info) {
console.log('leave', info);
},
getContainer() {
if (!this.cmContainer) {
this.cmContainer = document.createElement('div');
document.body.appendChild(this.cmContainer);
}
return this.cmContainer;
},
renderCm(info) {
if (this.toolTip) {
ReactDOM.unmountComponentAtNode(this.cmContainer);
this.toolTip = null;
}
this.toolTip = (