Closed helloint closed 2 years ago
异步获取数据成功之后,setState把数据更新到option项的series数据项中即可
export default function Demo() {
const chartRef = useRef(null)
const option = {
legend: {
top: 50,
left: 'center',
z: 100,
},
tooltip: {
trigger: 'axis',
show: true,
confine: true,
},
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
},
yAxis: {
type: 'value',
},
series: [
{
data: [150, 230, 224, 218, 135, 147, 260],
type: 'line',
},
],
}
const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay))
const getData = async () => {
await sleep(2000)
chartRef.current?.setOption({
series: [
{
data: [350, 430, 324, 318, 335, 347, 360],
type: 'line',
},
],
})
}
useEffect(() => {
;(async () => {
await sleep(2000)
getData()
})()
}, [])
return (
<Echarts
echarts={echarts}
option={option}
onChartReady={(echartsInstance) =>chartRef.current = echartsInstance}
></Echarts>
)
}
也可以通过调用setOption填入数据 @helloint 初始化拿到echarts实例,异步获取到数据之后,调用setOption填入数据即可, 这是例子可以看下
挺好的。
就是看能否把 EChartsInstance
给 export 出来,现在是:
import {EChartsInstance} from "taro-react-echarts/dist/components/echarts/types";
另外,你觉得支持RN的难度有多少?
升级到1.0.7, 新增了EChartsInstance, EChartOption 类型定义
有没有发现异步获取数据要至少 setTimeout 400ms的时候 页面才会加载,否正初始化失败? 后端接口 50ms 就返回数据,但是却要 400ms 才看到,页面加载看起来很慢
可以加个loading状态
可以加个loading状态
如果初始化 nexttick 去掉会有什么问题吗?
加个nexttick 比较保险....为了保证可以获取到canvas实例
加个nexttick 比较保险....为了保证可以获取到canvas实例
emmm, 感觉就是这个原因导致初始化 实例没创建完,然后导致父组件获取完数据 setOptions 没反应
我后面研究一下看看这个问题。 或者你找到问题也可以给建议 也可以提pr
好的~
我也遇到这个问题了,会出现父组件data异步加载后了,但是实例还没创建,请问有啥思路吗?
暂时在用: