拉丁的傳說(shuō)
2022-10-13 19:32:51
我通過(guò)從外部 API 中獲取數(shù)據(jù)來(lái)獲取國(guó)家/地區(qū)列表VueX。然后我使用突變將這些國(guó)家列表存儲(chǔ)到一個(gè)州。所以實(shí)際上,我將國(guó)家存儲(chǔ)在一個(gè)變量中,我this.$state.getters.countryList從一個(gè)組件中引用它?,F(xiàn)在我需要比較該列表中是否存在變量。所以我用這個(gè)方法: this.$store.getters.countryList.indexOf('usa').'usa'我知道該列表中存在一個(gè)事實(shí),但我總是得到-1結(jié)果。然后我嘗試this.$state.getters.countryList通過(guò) using調(diào)試值,并在控制臺(tái)中console.log(this.$state.getters.countryList)得到[__ob__: Observer]結(jié)果。這就是我想要做的: mounted() { if (this.$store.getters.countryList.indexOf('usa')) { //Do something } }如何獲得實(shí)際值this.$state.getters.countryList并將其與執(zhí)行檢查一起使用indexOf()以執(zhí)行其他操作?
1 回答

慕娘9325324
TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
由于從外部 API 獲取數(shù)據(jù)是一項(xiàng)async操作,因此您嘗試訪問(wèn)的數(shù)據(jù)在您需要時(shí)可能不可用,正如 @Phil 所述。
fetch出于這個(gè)原因,您可以設(shè)置一個(gè)觀察者在操作完成并countryList加載后運(yùn)行您的指令集:
在store.js中,假設(shè)您的商店最初countryList設(shè)置為:null
export const state = () => ({
countryList: null
})
然后在你的mounted()鉤子中你會(huì)設(shè)置一個(gè)觀察者:
mounted() {
this.$store.watch(
state => state.countryList,
(value) => {
if (value) {
//instruction once countryList is loaded
}
}
)
}
添加回答
舉報(bào)
0/150
提交
取消