Vuex: «TypeError не является функцией» при доступе к состоянию, которое является объектом класса, расширяющего массив - PullRequest
0 голосов
/ 18 октября 2019

Я получаю исключение TypeError: state.projects.load is not a function при доступе к геттеру projects в блоке кода ниже.

class ProjectList extends Array {
    initialised: boolean = false

    load() {
        // loads data into the array
        return 
    }
}

const store = new Vuex.Store({
    state: {
        projects: new ProjectList()
    },
    mutations: {
        add_project(state, p) {
            state.projects.push(p)
        }
    },
    getters: {
        projects: state => {
            if (!state.projects.initialised) {
                state.projects.load()               
            }
            return state.projects
        }        
    }
})

Похоже, что проблема связана с ProjectList расширением Array, так как тестирование простого случая вызова метода в классе без суперкласса работает нормально.

Есть ли у кого-нибудь предложения о том, как правильно ссылаться на объект в Vuex, который использует класс, расширяющий Array?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...