Vue.js vuex分派操作具有参数,但获得空参数值
我正在尝试在我的vuex中创建操作,该操作的方法是Vue.js vuex分派操作具有参数,但获得空参数值,vue.js,vuex,nuxt.js,Vue.js,Vuex,Nuxt.js,我正在尝试在我的vuex中创建操作,该操作的方法是goLogin,参数为email和password,在这种情况下,我使用的是numxt,当我尝试在我的组件中使用fetch时,dispatch与该参数配合良好,但是,当我尝试将其作为方法移动到@click时,调度参数为null,因为我在操作方法中记录控制台日志,它不是null,但当它到达后端API时,后端API将其读取为null 以下是我的行动: in-store/login.js 导出常量操作={ goLogin({commit},obj){
goLogin
,参数为email和password,在这种情况下,我使用的是numxt,当我尝试在我的组件中使用fetch时,dispatch与该参数配合良好,但是,当我尝试将其作为方法移动到@click时,调度参数为null,因为我在操作方法中记录控制台日志,它不是null,但当它到达后端API时,后端API将其读取为null
以下是我的行动:
in-store/login.js
导出常量操作={
goLogin({commit},obj){
//I console.log在这里记录obj,它不是空的
返回LoginService.tryLogin(obj)。然后((res)=>{
提交(“IS_LOGIN”,res.data);
}).catch(e=>{
提交(“IS_LOGIN”,例如response.data);
})
}
}
LoginService是从axios实例获得的,如下所示
tryLogin(obj){
//I console.log在这里记录obj,它不是空的
返回goAxios.get(“/login”{
资料来源:obj,
})
}
在@click login的我的组件方法中
异步tryLoginFromComponent(){
等待此消息。$store.dispatch(“login/goLogin”{
“电子邮件”:test@gmail.com",
“密码”:“12345678”,
})
},
当我单击login时,运行tryloginfromfomponent
的方法,它将在store/login.js中执行操作
但该参数的obj在后端为null,虽然I console.log不是
我在上面所做的有什么不对吗??我一整天都在尝试搜索,但找不到适合我的工作,我希望这里的每个人都能节省我的时间,因为
操作
已经是异步的,所以你不必异步调用tryLoginFromComponent
。可能有问题。您不必异步调用tryLoginFromComponent
,因为操作已经是异步的。也许有个问题
tryLoginFromComponent() {
this.$store.dispatch("goLogin",{
email: "test@gmail.com",
password: "12345678",
})
},
不需要把电子邮件和密码在这里双引号。这是一个对象,不是JSON键值对。试试看
不需要把电子邮件和密码在这里双引号。这是一个对象,不是JSON键值对。试试看。在开发人员工具的“网络”选项卡中,您看到了什么?此时请求是否正确?如果不正确,它与应该的请求有何不同?使用data
和GET
请求不太可能是您想要的。它应该是一个POST
,或者应该是params
而不是data
@skittle。在网络上,身体数据没有任何内容,点击api是正确的,你通常登录时使用POST
吗?就个人而言,我不会使用GET
请求登录,尤其是因为它有副作用。但这里的关键是,您使用的axios不正确。将data
选项传递给get
方法不会起任何作用。如果服务器使用的是GET
请求,那么您需要使用params
。您在开发人员工具的“网络”选项卡中看到了什么?此时请求是否正确?如果不正确,它与应该的请求有何不同?使用data
和GET
请求不太可能是您想要的。它应该是一个POST
,或者应该是params
而不是data
@skittle。在网络上,身体数据没有任何内容,点击api是正确的,你通常登录时使用POST
吗?就个人而言,我不会使用GET
请求登录,尤其是因为它有副作用。但这里的关键是,您使用的axios不正确。将data
选项传递给get
方法不会起任何作用。如果服务器正在使用GET
请求,则需要使用params
。