Flexmonster Software License Agreement (“Agreement”) has been significantly revised and is effective as of September 30, 2024.
The following modifications were made:
The modified version of Flexmonster Software License Agreement is available here.
Downloading, installing, and/or continuing to use Flexmonster Software after September 30, 2024, constitutes Licensee’s acceptance of the terms and conditions of the modified version of Flexmonster Software License Agreement. If Licensee does not agree to any of these terms and conditions, they must cease using Flexmonster Software and must not download, install, use, access, or continue to access Flexmonster Software. By continuing to use Flexmonster Software or renewing the license under License Model or Maintenance after the effective date of any modifications to Agreement, Licensee accepts and agrees to be bound by the terms and conditions of the modified Agreement.
This guide explains how to use Flexmonster methods and events in a React application. First, we will get a reference to the Flexmonster instance. Then we will use this reference to call methods and subscribe to events.
To interact with Flexmonster through code, you need a reference to the FlexmonsterReact.Pivot
instance. Follow the steps below to get the reference:
Step 1. Import the useRef
hook from React:
import { useRef } from "react";
Step 2. Using the useRef
hook, create an empty ref object (e.g., pivotRef
):
function App() { const pivotRef = useRef(null); // ... }
function App() { const pivotRef: React.RefObject<FlexmonsterReact.Pivot> = useRef<FlexmonsterReact.Pivot>(null); // ... }
Step 3. Pass the created object (e.g., pivotRef
) as the ref
attribute to FlexmonsterReact.Pivot
:
function App() { const pivotRef = useRef(null); return ( <div className="App"> <FlexmonsterReact.Pivot ref={pivotRef} toolbar={true} /> </div> ); }
function App() { const pivotRef: React.RefObject<FlexmonsterReact.Pivot> = useRef<FlexmonsterReact.Pivot>(null); return ( <div className="App"> <FlexmonsterReact.Pivot ref={pivotRef} toolbar={true} /> </div> ); }
The pivotRef
reference to the FlexmonsterReact.Pivot
instance is created.
In this guide, we will use the pivotRef.current.flexmonster
property, which is a reference to the Flexmonster instance. The pivotRef.current.flexmonster
gives you access to Flexmonster API.
Call Flexmonster methods using the previously created pivotRef:
pivotRef.current.flexmonster.setReport(report);
pivotRef.current?.flexmonster.setReport(report);
Some methods can also be defined as FlexmonsterReact.Pivot props:
<FlexmonsterReact.Pivot ref={pivotRef} toolbar={true} customizeCell={customizeCellFunction} />
Such methods include:
Check out the sample React project for more examples with Flexmonster methods:
See the full list of Flexmonster methods.
There are two ways to subscribe to Flexmonster events:
You can also unsubscribe from an event.
Define an event as the FlexmonsterReact.Pivot
prop and assign an event handler to it:
<FlexmonsterReact.Pivot report="https://cdn.flexmonster.com/reports/report.json" reportcomplete={onReportComplete} />
Handlers can be passed as inline JavaScript code or as variables. In both cases, curly braces should be used:
<FlexmonsterReact.Pivot toolbar="true" beforetoolbarcreated={toolbar => { toolbar.showShareReportTab = true; }} />
<FlexmonsterReact.Pivot toolbar="true" beforetoolbarcreated={customizeToolbar} />
The sample React project demonstrates how to subscribe to events via the component’s props:
See the full list of Flexmonster events.
Use the previously created pivotRef to call the on() method:
pivotRef.current.flexmonster.on("reportcomplete", onReportComplete);
pivotRef.current?.flexmonster.on("reportcomplete", onReportComplete);
See how the on()
method is used in the sample React project:
Check out the full list of Flexmonster events.
Use the off() method to unsubscribe from an event:
pivotRef.current.flexmonster.off("reportcomplete");
pivotRef.current?.flexmonster.off("reportcomplete");
This will remove all handlers from the event. To remove a specific handler, pass its name as a second parameter to off()
:
pivotRef.current.flexmonster.off("reportcomplete", onReportComplete);
pivotRef.current?.flexmonster.off("reportcomplete", onReportComplete);
Note If a handler is specified as an anonymous function, you can remove it only by removing all handlers.
See how the off()
method is used in the sample React project: