this.$store.dispatch() 是用来传值给vuex的mutation改变state。
我们来看看怎么获取this.$store.dispatch() 调用的返回值。
Action
首先看看定义的Action:
login({ commit }, userInfo) { // const { username, password } = userInfo return new Promise((resolve, reject) => { login(userInfo).then(response => { const { data } = response commit('SET_TOKEN', data.token) setToken(data.token) resolve(response) }).catch(error => { reject(error) }) }) },
两个关键点:
- 返回一个new Promise
return new Promise((resolve, reject)
- resolve函数中传入返回值
resolve(response)
调用
this.$store.dispatch('user/login', this.loginForm) .then(res => { console.log(res) fullLoading.close(); //登陆首页还是之前访问需要重定向的地址 this.$router.push({ path: this.redirect || '/' }) this.loading = false }) .catch(error => {}
在调用里就可以直接通过 res 来直接获取返回值了。
.then(res => { console.log(res)