Blog>
Snippets

Implementing Real-time Data Updates in TanStack React Charts

Provide an example of how to update a chart in real-time using WebSocket data streams and React state hooks.
import React, { useState, useEffect } from 'react';
import { Chart } from '@tanstack/react-chart';
First, import the React hooks and the Chart component from TanStack React Charts.
const MyRealtimeChart = () => {
  const [data, setData] = useState([]);

  useEffect(() => {
    const ws = new WebSocket('wss://your-websocket-server.com/data');

    ws.onmessage = (event) => {
      const messageData = JSON.parse(event.data);
      setData(currentData => [...currentData, messageData]);
    };

    return () => ws.close();
  }, []);

  return (
    <Chart
      options={/* Define your chart options here */}
      data={data}
    />
  );
};
This component maintains a data state, connects to a WebSocket server when the component mounts, listens for messages, and updates the data state with new values as they're received. The Chart component then uses this data for real-time updates.