怎么在设置默认数据后,不通过v-if
判断chartList
有没有数据。或者不设置computed
,在获取接口值后渲染出图例?
父组件
// 饼图组件
<BarChart
:chartId="'BarChartId1'"
:xAxisData="chartList.xAxisData"
:seriesData="chartList.seriesData"
></BarChart>
// 饼图数据
chartList: {
xAxisData: ['xxx'],
seriesData: [
{
name: 'xxx'
value: 111,
}
],
},
// 父组件获取饼图接口数据
proxy.$request
.get(`/overview/getData`, {
params,
})
.then((res) => {
console.log(res.data.pieChartData)
state.chartList = res.data.pieChartData
})
饼图不加 computed
不能刷新数据。
在接口获取到数据以后,watch
确实在最后打印出了新数据,但是图例只是刷了一下,数据却没有更新成接口的数据,还是初始设置的数据
let setOptions = {
// option数据
}
// 创建图表
const initChart = () => {
echarts.dispose(document.getElementById(props.chartId))
state.myChart = echarts.init(document.getElementById(props.chartId))
window.addEventListener('resize', () => {
state.myChart.resize()
})
state.myChart.setOption(setOptions, true)
}
onMounted(() => {
nextTick(() => {
console.log(props.seriesData)
initChart()
watch(
[() => props.xAxisData, () => props.seriesData],
(newVal) => {
console.log(newVal)
state.myChart.clear()
initChart()
return newVal
},
{
deep: true,
// immediate: true,
}
)
})
})
onUnmounted(() => {
echarts.dispose()
state.myChart = null
})
父组件:
子组件: