Получение данных в реальном времени из базы данных с помощью CubeJs
Я использую cubejs
с React
. Я хочу отображать данные в реальном времени.
Я пробовал использовать методы и состояние жизненного цикла React, где <QueryRender>
компонент срабатывает каждые 2 секунды. Но это не работает.
1 ответ
Вы можете переключить транспорт на веб-сокеты:
import cubejs from '@cubejs-client/core';
import WebSocketTransport from '@cubejs-client/ws-transport';
const cubejsApi = cubejs({
transport: new WebSocketTransport({ authentication: CUBEJS_TOKEN, apiUrl: 'ws://localhost:4000/' })
});
И используйте подписки на перехватчики реакции:
import { useCubeQuery } from '@cubejs-client/react';
const Chart = ({ query }) => {
const { resultSet, error, isLoading } = useCubeQuery(query, { subscribe: true });
if (isLoading) {
return <div>Loading...</div>;
}
if (error) {
return <pre>{error.toString()}</pre>;
}
return <LineChart resultSet={resultSet}/>;
};
Чтобы узнать больше: https://cube.dev/docs/real-time-data-fetch