Как получить доступ к вычисляемому свойству из метода в компоненте с одним файлом с помощью Vue.js

У меня есть обычный компонент с одним файлом, который имеет как вычисляемое свойство, так и несколько методов:

<template>...</template>
<script>
...
export default {
    props: ['matches'],
    data: function() {...}  // No problem with these

    computed: {
        formattedMatches: function () {
            let formatted = [];
            this.matches.forEach(function($match, $i, $arr) {
                formatted[$i] = $match[0];
            };
        });
        return formatted;
    }
    ...

    methods: {
        getData: function() {
            return this.formattedMatches();
        },
        ...
    }
}
<script>

Когда я пытаюсь получить доступ к this.formattedMatches() из метода, я получаю [Vue warn]: Error in render: "TypeError: this.formattedMatches is not a function" .

Каков правильный способ добиться того, чего я хочу? Заранее спасибо.


person andcl    schedule 19.09.2018    source источник
comment
вычисляемое свойство — это одно свойство, а не один метод, поэтому измените this.formattedMatches() на this.formattedMatches.   -  person Sphinx    schedule 19.09.2018
comment
Спасибо, это решило проблему, вы правы   -  person andcl    schedule 10.04.2019


Ответы (1)


Вы можете получить доступ к вычисляемым свойствам как property, а не как method:

// correct    
console.log(this.myProperty);

// wrong    
console.log(this.myProperty());

Примечание. Если вы рассматриваете его как метод с парацентезом (), он выдаст такую ​​ошибку Error in v-on handler: "TypeError: this.myProperty is not a function".

person moritz.vieli    schedule 10.04.2019
comment
черт возьми, как узнать, что требуется только свойство, всегда пробовал как метод, спасибо - person mangrove108; 27.08.2020