【发布时间】:2020-12-01 06:40:04
【问题描述】:
我有一个Login 视图,其中包含一个登录表单和一个调度名为login 的Vuex 存储操作的函数。此操作发出POST 请求,我想知道是否可以将Login 视图中的error 属性更改为Vuex 商店中调度的操作内部的内容。
例如,在这个 if 里面:
if (response.status === 401) {
console.log('Error logging in')
}
我想将 error 属性的值更改为 true。这可能吗?
<template lang="html">
<div class="register">
<div class="register-container">
<p>Welcome back!</p>
<form @submit.prevent="onSubmit" novalidate>
<div class="margin-bottom-20">
<p>Email</p>
<input v-model='email' type='email'>
</div>
<div class="margin-bottom-20">
<p>Password</p>
<input v-model='password' type="password">
</div>
<div v-if='error'>Error</div>
<button type="submit" name="button">Continue</button>
</form>
</div>
</div>
</template>
<script>
import axios from 'axios'
export default {
data(){
return {
email: '',
password: '',
error: false
}
},
methods: {
onSubmit(){
let userInfo = {
password: this.password,
email: this.email
}
this.$store.dispatch('login', userInfo)
}
}
}
</script>
这是在 Vuex 商店中找到的登录操作。
login({commit, dispatch}, userInfo){
axios.post('/login', userInfo)
.then(response => {
if (response.status === 401) {
console.log('Error logging in')
} else {
commit('authUser', {
token: response.data.token,
userId: response.data.userId,
username: response.data.username
})
router.replace('/')
}
}).catch((error) => console.log(error));
},
【问题讨论】:
标签: javascript vue.js vuejs2 vue-component vuex