Javascript Vuex此.“中未定义$store”;";生命周期挂钩

Javascript Vuex此.“中未定义$store”;";生命周期挂钩,javascript,vue.js,paypal,vuex,Javascript,Vue.js,Paypal,Vuex,我目前正在将Paypal服务集成到我的Vue项目中。我查阅了官方文件并复制了代码。我能够呈现Paypal按钮,完成交易并接收orderID。但是,由于以下错误,我无法将orderID发送到我的服务器:此.$store未定义请注意,,我可以在我的其他组件中引用此。$store。以下是我的代码: 更新:我尝试在onApprove方法中控制台.log(此)并返回未定义。这就是问题所在吗 更新我已将OnApprove方法和capture()方法转换为arrow函数,并收到不同的错误消息。此。$store

我目前正在将Paypal服务集成到我的Vue项目中。我查阅了官方文件并复制了代码。我能够呈现Paypal按钮,完成交易并接收orderID。但是,由于以下错误,我无法将orderID发送到我的服务器:此.$store未定义请注意,,我可以在我的其他组件中引用此。$store。以下是我的代码:

更新:我尝试在onApprove方法中控制台.log(此)并返回未定义。这就是问题所在吗

更新我已将OnApprove方法和capture()方法转换为arrow函数,并收到不同的错误消息。此。$store.dispatch(…)。然后(…)。err不是函数

Update我通过将.err()更改为.catch()来修复上述错误

更新我遇到了另一个问题,有时我点击Paypal按钮,外部Paypal窗口会立即自动关闭。我必须点击按钮几次,以防止这种奇怪的行为。我转到控制台日志,发现这条消息,如下面的屏幕截图所示


从“@/store/actions/products”导入{PRODUCT_PAYPAL}”;
导出默认值{
安装的(){
贝宝
.按钮({
createOrder:函数(数据、操作){
return actions.order.create({
购买单位:[
{
金额:{
值:“0.01”
}
}
]
});
},
onApprove:(数据、操作)=>{
返回actions.order.capture().then(详细信息=>{
警报(“交易由“+详细信息.付款人.名称.给定名称”完成);
log(“orderID为”);
console.log(data.orderID);
//调用服务器以保存事务
把这个还给我。$store
.dispatch(PRODUCT_PAYPAL,data.orderID)
.然后(()=>{
警惕(“成功”);
})
.catch(()=>{
警报(“错误”);
});
});
}
})
.render(“贝宝按钮容器”);
}
};
如下面的屏幕截图所示,我能够收到orderID,这意味着交易成功。但是,此.$store未定义。因此,我无法将订单ID发送到我的服务器


在回调函数上使用箭头函数,以访问此

onApprove: (data, actions) => ...

return actions.order.capture().then((details) => ...

嗨,克里斯!感谢您的回复,我已经将其转换为箭头函数,现在我收到一条不同的错误消息。这是消息:This.$store.dispatch(…).then(…).err不是function@Issaki将err()改为catch(),而不是.err(()=>{alert(“error”);});你有“.catch(()=>{alert(“error”);}”)嗨@Kris!现在我收到了另一条错误消息:未找到状态(404)。我相信这与我的API路径有关,所以我将尝试修复它。最后一个问题,有时我点击Paypal按钮,外部Paypal窗口会立即自动关闭。我必须点击按钮几次,以防止这种奇怪的行为。我转到控制台日志,发现此消息未捕获错误:Order Api响应错误:“name”:“AUTHENTICATION_FAILURE”,“message”:“由于身份验证凭据无效,身份验证失败。我会编辑这篇文章,截图的错误,这与你的API,是的。自从打电话以来。我不熟悉贝宝API对不起,我不能帮你。考虑把我的评论标记为答案,如果你回答了问题;
onApprove: (data, actions) => ...

return actions.order.capture().then((details) => ...