我正在从商店中导入价值
import {store} from '../../store/store'
我有变量:-
let Data = {
textType: '',
textData: null
};
当我使用console.log(store.state.testData)
在控制台中获得以下结果:-
{__ob__: Observer}
counters:Array(4)
testCounters:Array(0)
__ob__:Observer {value: {…}, dep: Dep, vmCount: 0}
get counters:ƒ reactiveGetter()
set counters:ƒ reactiveSetter(newVal)
get usageUnitCounters:ƒ reactiveGetter()
set usageUnitCounters:ƒ reactiveSetter(newVal)
__proto__:Object
当我直接访问console.log(store.state.testData.testCounters)
在控制台中获得以下结果:-
[__ob__: Observer]
length:0
__ob__:Observer {value: Array(0), dep: Dep, vmCount: 0}
__proto__:Array
但是如果我使用setTimeout访问console.log(store.state.testData.testCounters)
,那么我将获得testCounters的必需值。
setTimeout(() => {
console.log(tore.state.testData.testCounters);
}, 13000)
但是我需要将 testCounter 值分配给 Data 变量,但是由于数据不可用,因此它传递了定义的空白值。我怎样才能等到 testCounters 数据可用或者我们还有其他方法吗?
export { Data }
答案 0 :(得分:3)
如果我正确理解了您的问题,则说明您尝试设置store.state.testData.testCounters
。
您可以执行此操作的方法是使用计算机和手表
computed: {
testData() {
return this.$store.state.testData;
}
},
watch: {
testData: {
immediate: true,
deep: false,
handler(newValue, oldValue) {
console.log(newValue);
}
}
},
手表在安装后将触发一次(因为immediate
设置为true
,但是您可以将其设置为false
),当值更改时,它将再次触发。
在旁注中,可以使用散布运算符来显示对象值,而无需像这样的可观察对象:
console.log({...store.state.testData})
答案 1 :(得分:0)
当它返回可见状态时,您应该订阅商店。
df1 <- df[with(df, order(doc_id, terms, -freq)),]
df1[!duplicated(df1[-3]),]
# doc_id terms freq
#2 1 bye 1
#1 1 virginia 1
#3 2 energy 2
答案 2 :(得分:0)
这对我有用
computed: {
audioPlayerStatus() {
return this.$store.getters.loadedAudioPlayer;
}
},
watch: {
'$store.state.loadedAudioPlayer.isTrackPlaying': function() {
...
}
},