似乎有一些如何做类似事情的例子,但都与我的情况稍有不同。我正在从API(在JS文件中)加载一些库存数据,然后在我的VUE中使用它。我想使用从API数据编译的新数组来更新图表系列,但是它不起作用,并且没有出现任何错误。
我的Vue看起来像这样:
<template>
<div>
<highcharts :options="chartOptions" :updateArgs="[true, false]" ref="highcharts"></highcharts>
</div>
</template>
<script>
import appService from '../stock_prices'
import {Chart} from 'highcharts-vue'
export default {
name: 'stocks',
props: {
msg: String
},
data () {
return {
chartOptions: {
mySeries: [],
info: {},
updateArgs: [true, true, true],
series: [{
data: [1,2,3,4,5,6,7]
}],
}
},
}
}, //data
components: {
highcharts: Chart
},
methods: {
updateSeries() {
for (var i = 0; i < this.info.stock_prices.length; i++) {
this.mySeries.push([this.info.stock_prices[i].volume]);
i++
}
data: this.mySeries
}
}, //methods
async created () {
this.info = await appService.getPosts();
this.updateSeries()
}, //async created
} //export default
显然,我想等待我的API(在appService组件中)的所有数据加载完毕,然后使用它们创建更新的系列,但是我不确定这实际上是怎么回事。
也许是一个重要的注意事项:如果我在方法中将data: this.mySeries
替换为data: [10,10,10,10,10,10]
之类的文件,则仍然无法成功-没有错误,并且该系列也没有更新。
谢谢!
答案 0 :(得分:1)
请注意,您的数据不包含chartOptions。另外,在updateSeries()
中,您正在更新未引用任何内容的数据。它应该类似于以下示例:
<template>
<div>
<highcharts :options="chartOptions" :updateArgs="[true, false]" ref="highcharts"></highcharts>
</div>
</template>
<script>
import appService from '../stock_prices'
import {Chart} from 'highcharts-vue'
export default {
name: 'stocks',
props: {
msg: String
},
data () {
return {
mySeries: [],
info: {},
updateArgs: [true, true, true],
chartOptions: {
series: [{
data: [1,2,3,4,5,6,7]
}]
}
}
}, //data
components: {
highcharts: Chart
},
methods: {
updateSeries() {
for (var i = 0; i < this.info.stock_prices.length; i++) {
this.mySeries.push([this.info.stock_prices[i].volume]);
}
this.chartOptions.series[0].data: this.mySeries;
}
}, //methods
async created () {
this.info = await appService.getPosts();
this.updateSeries()
}, //async created
} //export default
检查此示例: