reactjs - 使用 CubeJs 从数据库中获取实时数据
问题描述
我正在cubejs
使用React
. 我想显示实时数据。
我尝试使用 React 生命周期方法和状态,其中<QueryRender>
组件每 2 秒触发一次。但它不起作用。
解决方案
您可以将传输切换到 Web 套接字:
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/' })
});
并使用 react hooks 订阅:
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}/>;
};
推荐阅读
- javascript - Angular Bootstrap:如何在预先输入的文本框结果中显示未找到结果消息
- javascript - 如何在javascript中拆分xmlhttp.response的内容
- python-3.x - 如何使用 scrapy 从该 url 刮取多个表格行?
- mysql - 使用 MySQL 数据库的 JavaFX 表视图“表中没有内容”
- spring-boot - 支持多种方式登录 Spring 安全性
- github - 如何从原始存储库同步或更新分叉的 GitHub 存储库?
- oracle - 将 JDeveloper 应用程序连接到 Oracle Live SQL
- quarkus - 启动应用时如何在 Quarkus 上执行部分代码?
- c - 两个相同的右移表达式产生不同的结果
- jquery - 如果日期是 jQuery 隐藏