vuex异步获取数据_vuex在actions里面异步请求数据,获取到数据提交给mutations,在组件获取给data...

问题描述

vuex在actions里面异步请求数据,获取到数据提交给mutations,在组件获取给data不对

问题出现的环境背景及自己尝试过哪些方法

我在actions异步请求是没有问题的,接口是你可以正常调用的

在组件获取到状态值我使用的是this.$nextTick 等加载完毕再去给data值 按理说也是可以的 但是不对

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

actions

getCertificationStatus({context,state},vm){

return new Promise((resolve, reject) => {

axios.post('/realNameUtils/gotoStatusPage')

.then((res)=>{

content.commit('certificationStatus',res.data.content)

if(res.data.content == "NOT_REALNAME"){

vm.$router.push({path:'/user/info'})//点击跳到未认证页面

}

mutations

certificationStatus(state,data){

state.certificationStatus = data

}

组件

data(){

return {

type : '',//认证方式

exampleDialogPerson : false,//示范弹层

exampleDialogLeagel: false,//示范弹层

exampleDialog2 : false,//认证方式弹层

exampleDialog3 : false,//认证方式弹层

show:false,//认证提示

flag1:false,//底部卡片

flag2:false,

flag3:false,

flag4:false,

phone: '',//进入认证需要绑定手机号

typeMethods: '',//认证方式 个人 企业

stateRoute: '',//状态路由

baazar: false,//应用市场弹层

certificationStatus1: ''

}

},

components: {

NavBar,

PubFooter

},

computed: {

certificationStatus(state) {

return this.$store.state.certificationStatus;

}

},

mounted(){

this.$nextTick(()=>{

this.certificationStatus1 = this.$store.state.certificationStatus;

});

console.log(this.certificationStatus)

console.log(this.certificationStatus1)

你期待的结果是什么?实际看到的错误信息又是什么?

我想获取到状态值,并操作状态值,对状态值进行判断,根据状态值来决定显示什么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Vuex异步获取数据时,可以在actions中定义一个函数来进行数据异步获取。在这个函数中可以使用Promise对象来处理异步操作,然后将获取到的数据通过commit方法提交mutations来修改state中的数据。举个例子,假设我们需要异步获取电影院的数据: ```javascript // actions中的定义 actions: { getCinemaData(store) { return new Promise((resolve, reject) => { // 异步获取数据的逻辑 // 这里可以使用axios或者其他方式发送异步请求获取数据 axios.get('/api/cinema') .then(response => { // 获取数据后,通过commit方法提交mutation来修改state中的数据 store.commit('SET_CINEMA_DATA', response.data); resolve(); }) .catch(error => { reject(error); }); }); } }, // mutations中的定义 mutations: { SET_CINEMA_DATA(state, data) { state.cinemaData = data; } } ``` 在组件中使用异步获取数据的方法是通过dispatch方法来触发actions中的函数: ```javascript // 在组件中触发异步获取数据的方法 this.$store.dispatch('getCinemaData') .then(() => { // 数据获取成功后的处理逻辑 // 可以在这里使用mapState方法将state中的数据映射到组件的computed属性中 }) .catch(error => { // 异常处理逻辑 }); ``` 使用Vuex进行异步数据获取的好处是可以统一管理和维护共享的状态或数据,在兄弟组件间传递数据也更加方便。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vuex异步流程](https://blog.csdn.net/a1598452168YY/article/details/128247264)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vuex最详细完整的使用用法](https://blog.csdn.net/qq_41619567/article/details/84787428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vuex异步获取数据的步骤](https://blog.csdn.net/lxj07215212/article/details/123633804)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值