gpt4 book ai didi

javascript - Vuex 调度不返回 View 中的数据

转载 作者:行者123 更新时间:2023-12-02 22:00:39 27 4
gpt4 key购买 nike

我无法从 vuex 获取数据并在所有 View 中使用它们,但我确实在网络选项卡中看到了它们的成功结果。

屏幕截图

网络选项卡

one

控制台

two

代码

store.js

state: {
currency: {}
},
mutations: {
currency(state, currency){
state.currency = currency
}
},
actions: {
currency({commit}){
return new Promise((resolve, reject) => {
commit('currency')
axios({url: '/api/currencyDefault', method: 'GET' })
.then(resp => {
const currency = resp.data.data
commit('currency', currency)
resolve(resp)
})
.catch(err => {
commit('currency')
reject(err)
})
})
},
},
getters: {
currency: state => state.currency,
}

App.vue(路由器将加载的主要组件)

<script>
export default {
props:['currency'],
data() {
return {
isCollapse: true,
}
},
created () {
this.currency()
},
methods: {
currency() {
this.$store.dispatch('currency')
}
},
}
</script>

然后在我的其他组件中我调用货币,例如:

{{currency.name}}

想法?

最佳答案

方法货币已被定义为 Prop 。在您的代码中删除它。

props:['currency']

十在你的组件中这样称呼这种货币

<div>
{{this.$store.getters.currency.name}}
</div>

为了确保显示货币,我所做的是首先添加一个条件来检查它是否已经加载。像这样

<div v-if="$store.getters.currency">
{{this.$store.getters.currency.name}}
</div>

或者在数据中声明一个新变量,例如

data() {
return {
currency: this.$store.getters.currency.name
}
}

现在你可以这样调用它

<div v-if="$store.getters.currency">
{{currency.name}}
</div>

关于javascript - Vuex 调度不返回 View 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59890045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com