Я недавно начал изучать vue.js с использованием машинописи. Typescript официально поддерживается с помощью vue, и я использую пакет под названием vue-class-component
. Мы в основном объявляем компоненты как классы через этот пакет. Следуя его README, я создал следующий миксин в своем коде:
import Vue from 'vue';
import Component from 'vue-class-component';
import router from '@/router';
@Component
export default class AuthMixin extends Vue {
public googleAuthenticate() {
this.$gAuth.getAuthCode()
.then((authCode: any) => {
return this.$http.post('http://localhost:8000/rest-auth/google/', { code: authCode, redirect_uri: 'http://localhost:8080', clientId: clientID });
})
.then((response: any) => {
router.push('/home');
})
.catch((error: any) => {
router.push('/');
});
}
}
Я использую функцию социальной аутентификации, предоставляемую пакетом vue-google-oauth2
Когда я запускаю код, он, кажется, работает нормально, и кажется, что vue может определить, что экземпляр this указывает на экземпляр vue. Но в моем коде он всегда подчеркивается и по существу утверждает, что «this» ссылается на метод googleAuthenticate и не имеет никакой переменной $ gAuth.
Как я могу удалить эту ошибку?