如何将计算 属性 中的 vuex 数据传递给 data prop
how to pass vuex data in computed property to data prop
我需要帮助从 vuex 发送发送数据,并计算:{} 到 data prop(data() {return {}})
我试过 watch: 但我的箱子不起作用,因为它必须在之后作为道具发送。
顺便说一句,除了在任何 vue 组件中计算 属性 之外,我无法在任何地方获取存储值,这让我很沮丧......我现在正在研究这个问题四个小时......请帮忙
<template>
<pie-chart :data="chartdata" />
</template>
data() {
return {
chartdata: [] //<<<<- I need to set the data from vuex here but calling this.$store.getters.myGetter() doesn't work
}
},
computed: {
aa() {
return this.$store.getters.getCurrentTodPlanARing;
},
},
我的 vuex 没有发现任何问题。我仅在计算中正确获取所有数据!!!。
不知何故出于某种原因,每当我在挂载、方法甚至数据中调用它时,我只有初始数据,它在 vuex 中是一个空数组 属性(data() return {}}.
所以我必须将我的 vuex 数据传递给 data prop...
为什么需要将数据从 Vuex/getter 复制到 data
?只需像使用 aa
一样使用 computed
从措辞来看,我假设你的 Vuex 存储最初是空的,数据是通过一些异步 Ajax 调用加载的 (fetch/Axios)
data
是 Vue 在创建组件时调用的函数。如果你像这样使用 Vuex getter:
data() {
return {
chartdata: this.$store.getters.getter
}
},
chartdata
将使用当前 getter 值进行初始化(可能为空,因为 Ajax 调用仍在进行中)并且 它不会更新 数据到达时
如果你想直接使用你的 vuex 数据,你可以创建一个计算 属性 并使用它。您不需要额外的步骤将其存储在数据中 属性.
<template>
<pie-chart :data="chartdata" />
</template>
computed: {
chartdata() {
return this.$store.getters.chartData;
},
},
所以每次 vuex 存储更新时,chartData 属性 也会更新。
如果您需要修改 vuex 数据,在将其传递给 PieChart 之前,您可以在计算的 属性 上创建一个 watch,或者简单地创建另一个计算的 属性,它将执行为你工作。
<template>
<pie-chart :data="modifiedChartData" />
</template>
computed: {
chartdata() {
return this.$store.getters.chartData;
},
modifiedChartData(){
const data = this.chartdata;
//Do your modifications here
return data;
}
},
带手表:
<template>
<pie-chart :data="modifiedChartData" />
</template>
data(){
return {
modifiedChartData:[]
}
}
computed: {
chartdata() {
return this.$store.getters.chartData;
},
},
watch:{
chartdata:{
handler (value){
//do modifications here
this.modifiedChartData = value;
},
immediate:true
}
}
我需要帮助从 vuex 发送发送数据,并计算:{} 到 data prop(data() {return {}})
我试过 watch: 但我的箱子不起作用,因为它必须在之后作为道具发送。
顺便说一句,除了在任何 vue 组件中计算 属性 之外,我无法在任何地方获取存储值,这让我很沮丧......我现在正在研究这个问题四个小时......请帮忙
<template>
<pie-chart :data="chartdata" />
</template>
data() {
return {
chartdata: [] //<<<<- I need to set the data from vuex here but calling this.$store.getters.myGetter() doesn't work
}
},
computed: {
aa() {
return this.$store.getters.getCurrentTodPlanARing;
},
},
我的 vuex 没有发现任何问题。我仅在计算中正确获取所有数据!!!。 不知何故出于某种原因,每当我在挂载、方法甚至数据中调用它时,我只有初始数据,它在 vuex 中是一个空数组 属性(data() return {}}.
所以我必须将我的 vuex 数据传递给 data prop...
为什么需要将数据从 Vuex/getter 复制到 data
?只需像使用 aa
computed
从措辞来看,我假设你的 Vuex 存储最初是空的,数据是通过一些异步 Ajax 调用加载的 (fetch/Axios)
data
是 Vue 在创建组件时调用的函数。如果你像这样使用 Vuex getter:
data() {
return {
chartdata: this.$store.getters.getter
}
},
chartdata
将使用当前 getter 值进行初始化(可能为空,因为 Ajax 调用仍在进行中)并且 它不会更新 数据到达时
如果你想直接使用你的 vuex 数据,你可以创建一个计算 属性 并使用它。您不需要额外的步骤将其存储在数据中 属性.
<template>
<pie-chart :data="chartdata" />
</template>
computed: {
chartdata() {
return this.$store.getters.chartData;
},
},
所以每次 vuex 存储更新时,chartData 属性 也会更新。
如果您需要修改 vuex 数据,在将其传递给 PieChart 之前,您可以在计算的 属性 上创建一个 watch,或者简单地创建另一个计算的 属性,它将执行为你工作。
<template>
<pie-chart :data="modifiedChartData" />
</template>
computed: {
chartdata() {
return this.$store.getters.chartData;
},
modifiedChartData(){
const data = this.chartdata;
//Do your modifications here
return data;
}
},
带手表:
<template>
<pie-chart :data="modifiedChartData" />
</template>
data(){
return {
modifiedChartData:[]
}
}
computed: {
chartdata() {
return this.$store.getters.chartData;
},
},
watch:{
chartdata:{
handler (value){
//do modifications here
this.modifiedChartData = value;
},
immediate:true
}
}