React integration for Highcharts Grid Lite.
- Official website: www.highcharts.com
- Product page: www.highcharts.com/products/grid
- Download: www.highcharts.com/download
- License: www.highcharts.com/license
- Documentation: www.highcharts.com/docs
- Support: www.highcharts.com/support
- Issues: Working repo
npm install @highcharts/grid-lite-react- React 18 or higher
import React, { useState } from 'react';
import { Grid, type GridOptions } from '@highcharts/grid-lite-react';
function App() {
const [options] = useState<GridOptions>({
dataTable: {
columns: {
name: ['Alice', 'Bob', 'Charlie'],
age: [23, 34, 45],
city: ['New York', 'Oslo', 'Paris']
}
},
caption: {
text: 'My Grid'
}
});
return <Grid options={options} />;
}React component that wraps Highcharts Grid Lite.
options(required): Configuration options for the grid. Type:GridOptionsgridRef(optional): React ref to access the underlying grid instance. Type:RefObject<GridRefHandle<GridOptions>>callback(optional): Callback function called when the grid is initialized. Receives the grid instance as parameter. Type:(grid: GridInstance<GridOptions>) => void
Type exported from the package for TypeScript support.
import type { GridOptions } from '@highcharts/grid-lite-react';Type for the gridRef handle that provides access to the underlying grid instance.
import type { GridRefHandle } from '@highcharts/grid-lite-react';
const gridRef = useRef<GridRefHandle<GridOptions> | null>(null);
// Access the grid instance via gridRef.current?.gridType for the grid instance returned by gridRef or callback.
import type { GridInstance } from '@highcharts/grid-lite-react';You can access the grid instance in two ways:
Using gridRef:
import { useRef } from 'react';
import { Grid, type GridRefHandle, type GridOptions } from '@highcharts/grid-lite-react';
function App() {
const gridRef = useRef<GridRefHandle<GridOptions> | null>(null);
const handleClick = () => {
// Access the grid instance
const gridInstance = gridRef.current?.grid;
if (gridInstance) {
console.log('Grid instance:', gridInstance);
}
};
return (
<>
<Grid options={options} gridRef={gridRef} />
<button onClick={handleClick}>Access Grid</button>
</>
);
}Using callback:
import { Grid, type GridInstance, type GridOptions } from '@highcharts/grid-lite-react';
function App() {
const handleGridReady = (grid: GridInstance<GridOptions>) => {
console.log('Grid initialized:', grid);
};
return <Grid options={options} callback={handleGridReady} />;
}When using this package with Next.js, you need to disable Server-Side Rendering (SSR) for the Grid component:
'use client';
import { useState } from 'react';
import dynamic from 'next/dynamic';
import { type GridOptions } from '@highcharts/grid-lite-react';
import '@highcharts/grid-lite/css/grid-lite.css';
// Disable SSR for the Grid component
const Grid = dynamic(
() => import('@highcharts/grid-lite-react').then((mod) => mod.Grid),
{ ssr: false }
);
export default function Page() {
const [options] = useState<GridOptions>({
dataTable: {
columns: {
name: ['Alice', 'Bob', 'Charlie'],
age: [23, 34, 45]
}
}
});
return <Grid options={options} />;
}Important: The Grid component must be rendered client-side only. Always use dynamic import with ssr: false and mark your component with 'use client' directive.
For detailed documentation on available options and features, see the Highcharts Grid Lite documentation.
SEE LICENSE IN LICENSE.