使用axios响应在vuejs中设置数据对象

时间:2018-06-11 13:37:37

标签: javascript vue.js vuejs2 axios

我正在进行API调用并返回(预期的)错误。我可以控制日志记录错误消息但我似乎无法使用响应设置vuejs数据变量。我做错了什么?

        data: {
            ...
            ...
            errors: null
        },
        methods: {
            checkConnections: function (event) {
                axios.post('/checkconnections', {
                    //form data is passed here
                    ...
                    ...
                })
                .then(function (response) {
                    console.log(response);
                }).catch(function (error) {
                    console.log(error.response.data.error);
                    this.errors = error.response.data.error;
                });
            }
        }

console.log(error.response.data.error)部分正常,但作业this.errors = error.response.data.error;却没有。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

catch处理程序中的this值不是您所期望的。解决该问题的最简单方法是使用像.catch(error => { this.errors = error.response.data.error; })这样的箭头函数。

如果您的环境不允许使用ES6功能,则可以改为使用Function.bind(this)