Это связано с тем, что selectedLanguage
не является вычисляемым свойством / получателем, поэтому его значение присваивается только при создании экземпляра класса, а не при обновлении хранилища globalLocale
позже.
Первое решениеэто просто конвертировать selectedLanguage
в вычисляемое свойство (он же getter) в самом компоненте:
protected get selectedLanguage() {
return this.$store.getters['globalLocale'];
}
В качестве альтернативы, вы также можете использовать mapGetters
в декораторе @Component
вместо :
@Component({
computed: {
...mapGetters({
selectedLanguage: 'globalLocale'
})
}
})
Однако проблема заключается в том, что вы теряете безопасность типов во втором решении, и вам придется объявить тип, возвращаемый для selectedLanguage
, если хотите, в компоненте.сам, то есть:
@Component({
computed: {
...mapGetters({
selectedLanguage: 'globalLocale'
})
}
})
export default class Internationalize extends Vue {
protected selectedLanguage!: <YourTypeHere>
}