Другие комментарии и ответы верны - будет работать стрелка / лямбда-функция вместо function
. Но есть нюанс, почему.
Концепция Javascript this
четко определена, но не всегда то, что вы ожидаете от других языков. this
может измениться в одном блоке области видимости, когда вы выполняете подфункции таких вещей, как обратные вызовы. В вашем случае функция в then
больше не воспринимает this
так же, как если бы вы выполняли тот же код непосредственно внутри mounted()
.
Вы можете привязать функции, однако, к (среди прочих целей) прикрепленным конкретным this
, которые нельзя изменить. Функции стрелок делают это неявно и связывают this
с тем, что this
находится в контексте, где создается функция стрелок. Поэтому этот код:
axios.get('/User/GetBungieNetUserById/19964531/')
.then((response) => {
this.playerName = response.data.Response.displayName
console.log(response.data.Response.displayName)
});
правильно понимает this
. Это ( примерно! ) эквивалентно следующему:
axios.get('/User/GetBungieNetUserById/19964531/')
.then((function(response) {
this.playerName = response.data.Response.displayName
console.log(response.data.Response.displayName)
}).bind(this));