網(wǎng)站首頁 編程語言 正文
安裝echarts
npm install echarts --save
按需加載Echarts demo
echarts.init() API文檔
import * as echarts from 'echarts/core' import { BarChart, // 系列類型的定義后綴都為 SeriesOption LineChart, } from 'echarts/charts' import { TitleComponent, // 組件類型的定義后綴都為 ComponentOption TooltipComponent, GridComponent, // 數(shù)據(jù)集組件 DatasetComponent, // 內(nèi)置數(shù)據(jù)轉(zhuǎn)換器組件 (filter, sort) TransformComponent, } from 'echarts/components' import { LabelLayout, UniversalTransition } from 'echarts/features' import { CanvasRenderer } from 'echarts/renderers' import { useEffect, useRef } from 'react' // 注冊必須的組件 echarts.use([ TitleComponent, TooltipComponent, GridComponent, DatasetComponent, TransformComponent, BarChart, LabelLayout, UniversalTransition, CanvasRenderer, LineChart, ]) const ECharts: React.FC = () => { // 1. get DOM const chartRef = useRef(null) useEffect(() => { // 2. 實例化表格對象 const chart = echarts.init(chartRef.current as unknown as HTMLDivElement, undefined, { width: 1000, height: 500, }) // 3. 定義數(shù)據(jù) const option = { title: { text: '測試圖表', }, xAxis: { type: 'category', data: ['1-1', '1-2', '1-3', '1-5', '1-6', '1-7', '1-8', '1-9'], }, yAxis: { type: 'value', }, series: [ { data: [140, 110, 100, 90, 70, 30, 10, 0], type: 'line', }, ], } // 4. 調(diào)用表格數(shù)據(jù) chart.setOption(option) }, []) return <div className="charts" ref={chartRef} /> } export default ECharts
錯誤記錄
實例化Echarts的時候出現(xiàn):“類型“null”的參數(shù)不能賦給類型“HTMLElement”的參數(shù)”錯誤,是typescript類型檢查
引起的,因此需要對該chartRef.current
定義類型,可以定義成any
,這里用的是typescript的雙重斷言去定義的類型。
發(fā)生錯誤的代碼
修改后的代碼
注意:
類型斷言只能夠「欺騙」TypeScript 編譯器,無法避免運行時的錯誤,反而濫用類型斷言可能會導(dǎo)致運行時錯誤 類型斷言只會影響
TypeScript 編譯時的類型,類型斷言語句在編譯結(jié)果中會被刪除,所以它不是類型轉(zhuǎn)換,不會真的影響到變量的類型。
將圖表改為自適應(yīng)容器大小 – .resize()
echarts中提供了resize函數(shù)能夠自動改變圖表的大小,但是需要使用window.onresize
去監(jiān)聽窗口
的變化,只要窗口尺寸變化了就調(diào)用resize方法,并且圖表的寬度和高度要分別設(shè)置成百分比和vh單位
,否則resize會失效。
基于上面的demo實現(xiàn):
多復(fù)制一個表格數(shù)據(jù)之后在調(diào)用表格數(shù)據(jù)后面加window.resize函數(shù),有多少個表就繼續(xù)往后面加多少個resize。
// 4. 調(diào)用表格數(shù)據(jù) chart.setOption(option) chart2.setOption(option2) // 5. 將圖表變?yōu)樽赃m應(yīng) window.onresize = () => { chart.resize() chart2.resize() }
原文鏈接:https://blog.csdn.net/weixin_46353030/article/details/126121705
相關(guān)推薦
- 2022-12-06 Pytorch實現(xiàn)List?Tensor轉(zhuǎn)Tensor,reshape拼接等操作_python
- 2022-03-03 iview 在 Table 組件中,文字過長用省略號代替,鼠標放上去 Tooltip 文字提示
- 2022-09-13 Python列表和集合的效率大比拼_python
- 2022-03-22 ASP.NET Core中如何使用Dapper
- 2022-08-19 淺談Redis6.x io事件驅(qū)動模型
- 2022-05-18 centos?自動運行python腳本和配置?Python?定時任務(wù)_python
- 2022-08-31 C語言實現(xiàn)交換排序算法(冒泡,快速排序)的示例代碼_C 語言
- 2022-10-14 ‘configurationClass‘ must be assignable to [org.hi
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支