为什么我的Vue组件在javascript ajax catch块中为null?

时间:2019-06-14 17:33:29

标签: javascript vue.js vuex

我有下面的ajax代码来调用服务器以保存一些数据。如果调用成功,则可以通过Vuex存储将数据传递到另一个组件并执行一些操作。下面的“ this”是我的Vue组件。

this.$store.commit('appRoot/alertSuccess', "Witness saved!")

但是如果出现错误并且我输入catch块,那么'this'为null。为什么会这样,有没有办法获取数据,以便我可以在catch语句中调用Vuex存储?

this.$store.commit('appRoot/alertError', "Couldn't save witness. IT has been notified.")

这是我使用它的地方。在catch块中,“ this”为空!

save() {
  axios.post('/Api/CallSomethingHere', {
    //pass some data here
  }).then(response => {
    // do some action here
    // Show success...
    this.$store.commit('appRoot/alertSuccess', "Witness saved!")
  }).catch(function(error) {
    // Show error;
    this.$store.commit('appRoot/alertError', "Couldn't save data. IT has been notified.")
  });
}

0 个答案:

没有答案