Open and close contextmenu in React Context menu component

7 Oct 20254 minutes to read

The ContextMenu component can be opened and closed programmatically using the open and close methods. This programmatic control is useful for creating custom trigger events or implementing context menu functionality in response to specific user interactions.

The open method accepts three parameters:

  • top: To specify ContextMenu vertical positioning.
  • left: To specify ContextMenu horizontal positioning.
  • target: To calculate z-index for ContextMenu based upon the specified target.

In the following example, the ContextMenu is opened using the open method at the specified position using top and left coordinates. The ContextMenu is closed using the close method on ContextMenu item click or document click.

import { enableRipple } from '@syncfusion/ej2-base';
import { ButtonComponent } from '@syncfusion/ej2-react-buttons';
import { ContextMenuComponent } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';
enableRipple(true);
function App() {
    let cMenu;
    let menuItems = [
        {
            text: 'Cut'
        },
        {
            text: 'Copy'
        },
        {
            text: 'Paste'
        }
    ];
    function btnClick() {
        cMenu.open(40, 20);
    }
    return (<div className="container">
            <ContextMenuComponent id='contextmenu' ref={(scope) => cMenu = scope} items={menuItems}/>
            <ButtonComponent onClick={btnClick}>Open ContextMenu</ButtonComponent>
        </div>);
}
export default App;
ReactDom.render(<App />, document.getElementById('element'));
import { enableRipple } from '@syncfusion/ej2-base';
import { ButtonComponent } from '@syncfusion/ej2-react-buttons';
import { ContextMenuComponent, MenuItemModel } from '@syncfusion/ej2-react-navigations';
import * as React from 'react';
import * as ReactDom from 'react-dom';

enableRipple(true);

function App() {
    let cMenu: ContextMenuComponent;
    let menuItems: MenuItemModel[] = [
        {
            text: 'Cut'
        },
        {
            text: 'Copy'
        },
        {
            text: 'Paste'
        }
    ];

    function btnClick(): void {
        cMenu.open(40, 20);
    }

    return (
        <div className="container">
            <ContextMenuComponent id='contextmenu' ref={(scope) => cMenu = scope as ContextMenuComponent} items={menuItems} />
            <ButtonComponent onClick={btnClick}>Open ContextMenu</ButtonComponent>
        </div>
    );
}
export default App;
ReactDom.render(<App />,document.getElementById('element'));