0
    name: "BtnCertificate",
    props: ['certificate', 'show'],
    computed: {
        general_color_style: () => {
            console.log(this);
            return `background-color: red`
        }
    },
    created() {
        this.settings = this.$store.state.settings;
    },
    data: () => ({
        settings: null,
    })

Почему в computed this === undefined?

hedgehogues
  • 9,569
  • @Grundy, Вопрос не является дубликатом, так как есть решение специфичное для библиотеки Vue (отмеченной в метках вопроса). – yar85 Dec 03 '19 at 18:00
  • @yar85, конечно является дубликатом. – Grundy Dec 03 '19 at 18:19
  • А, ну поняяяятно... – yar85 Dec 03 '19 at 19:23

2 Answers2

0

Потому что это лямбда-функция, созданная в коде в строгом режиме, который либо является top-level-кодом, либо находится в функции имеющей undefined в качестве this.

Qwertiy
  • 123,725
0

Из официальной документации Vue:

Обратите внимание, при использовании стрелочной функции в определении вычисляемого свойства, this не будет указывать на экземпляр компонента, но к нему можно получить доступ из первого аргумента функции

Соответственно:

computed: {
  general_color_style: vm => {
    console.log(vm);
    return `background-color: red`;
  }
},
yar85
  • 10,940