react+typescript中使用echarts的實現步驟
npm install echarts --save
按需加載Echarts demo
import * as echarts from 'echarts/core'
import {
BarChart,
// 系列類型的定義后綴都為 SeriesOption
LineChart,
} from 'echarts/charts'
import {
TitleComponent,
// 組件類型的定義后綴都為 ComponentOption
TooltipComponent,
GridComponent,
// 數據集組件
DatasetComponent,
// 內置數據轉換器組件 (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. 定義數據
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. 調用表格數據
chart.setOption(option)
}, [])
return <div className="charts" ref={chartRef} />
}
export default ECharts
錯誤記錄
實例化Echarts的時候出現:“類型“null”的參數不能賦給類型“HTMLElement”的參數”錯誤,是typescript類型檢查引起的,因此需要對該chartRef.current定義類型,可以定義成any,這里用的是typescript的雙重斷言去定義的類型。
發(fā)生錯誤的代碼

修改后的代碼

注意:
類型斷言只能夠「欺騙」TypeScript 編譯器,無法避免運行時的錯誤,反而濫用類型斷言可能會導致運行時錯誤 類型斷言只會影響
TypeScript 編譯時的類型,類型斷言語句在編譯結果中會被刪除,所以它不是類型轉換,不會真的影響到變量的類型。
將圖表改為自適應容器大小 – .resize()
echarts中提供了resize函數能夠自動改變圖表的大小,但是需要使用window.onresize去監(jiān)聽窗口的變化,只要窗口尺寸變化了就調用resize方法,并且圖表的寬度和高度要分別設置成百分比和vh單位,否則resize會失效。
基于上面的demo實現:
多復制一個表格數據之后在調用表格數據后面加window.resize函數,有多少個表就繼續(xù)往后面加多少個resize。
// 4. 調用表格數據
chart.setOption(option)
chart2.setOption(option2)
// 5. 將圖表變?yōu)樽赃m應
window.onresize = () => {
chart.resize()
chart2.resize()
}
到此這篇關于react+typescript中使用echarts的實現步驟的文章就介紹到這了,更多相關react typescript中使用echarts內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Hello?React的組件化方式之React入門小案例演示
這篇文章主要介紹了Hello?React的組件化方式-React入門小案例,本文通過Hello?React的案例,?來體驗一下React開發(fā)模式,?以及jsx的語法,需要的朋友可以參考下2022-10-10
redux持久化之redux-persist結合immutable使用問題
這篇文章主要為大家介紹了redux持久化之redux-persist結合immutable使用問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08
React中使用echarts-for-react的方法示例
echarts-for-react則是ECharts在React生態(tài)中的官方封裝組件,它讓開發(fā)者能夠輕松地在React應用中集成ECharts圖表,本文就來介紹一下echarts-for-react的使用,感興趣的可以了解一下2025-03-03
react-native android狀態(tài)欄的實現
這篇文章主要介紹了react-native android狀態(tài)欄的實現,使狀態(tài)欄顏色與App顏色一致,使用戶界面更加整體。小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
詳解webpack + react + react-router 如何實現懶加載
這篇文章主要介紹了詳解webpack + react + react-router 如何實現懶加載,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-11-11

