1 回答
TA贡献1789条经验 获得超8个赞
从Vuex 文档中,您可以阅读:
在 Vuex store 中真正改变状态的唯一方法是提交一个 mutation
这意味着你不应该尝试做this.$store.state.linedata = [1,2,3,4,5,6]。顺便说一句,它可能会抛出错误,具体取决于您在控制台中的 Vuex 设置。相反,像这样创建一个突变:
mutations: {
updateLineDate(state, lineDate) {
state.lineData = lineData;
}
}
然后调用:
this.$store.commit("updateLineDate", [1, 2, 3, 4, 5, 6]);
要自动更新图表数据,我建议在 Vue 组件中创建一个计算属性。要使其对更改做出反应,请使用以下方法映射您的属性mapState:
import { mapState } from "vuex";
// ...
computed: {
...mapState("lineData"),
chartData() {
return {
chart: {
type: this.type
},
series: [{
data: this.lineData,
name: "Test Series",
color: this.color
}]
}
}
}
然后记得提供chartData给您的图表组件,而不是chartOptions在我的示例中。
添加回答
举报