VUEX中的actions中的函数是否能有返回值?

新手误笑,刚接触VUEX没几天。
想做一个用户登录的功能,把登录成功的用户状态放到vuex中管理。
login.vue

<template>
    <div id="login">
.....
<van-form @submit="onSubmit">
.....
<script>
....
methods: {
    ...mapActions('user',{'onSubmit':'Loginactions'}),
   想在这里接收上面函数的返回值,根据返回值弹出用户登录结果信息给客户端
....

store/user.js

export default {
    namespaced:true,
    state:{
        userinfo:'',
    },
    mutations:{
        Loginmutations(state,data){
            state.userinfo = data;
        },
    },
    actions:{
        Loginactions(contenxt,data){
                 axios.post('/api/user/login', params).then(function(res) {
                     if (res.data.code == 1) {
                         contenxt.commit("Loginmutations",res.data.data);
                        return 'ok';
                     }else{
                        return 'error';
                    }
                 });
        }
    }
}

不知道Loginactions能否有返回值?也不知道我这样的思路是否正确

阅读 2.2k
1 个回答

actions 的返回值是 Promise,至于 Promise 里面再返回什么就随意了。

你的写法有问题,因为你没有 return,所以 .then() 里面的函数返回什么都不起作用。

推荐问题