Как использовать состояние в функции данных в vue - PullRequest
0 голосов
/ 14 апреля 2020

Возникла проблема с использованием состояния в функции данных Vue. Я пробовал это

this.items = this.$store.state.search_items

, но это всегда приводит к пустому массиву, как этот

 [__ob__: Observer]
length: 0
__ob__: Observer {value: Array(0), dep: Dep, vmCount: 0}
__proto__: Array

Любая помощь будет оценена. Спасибо !!

Вот мутация, из которой я заявляю search_items, это работает, потому что я могу видеть state.search_items в Vue dev tool

SET_WORKSPACES(state, payload) {
        state.workspaces = payload;
        var items = [];
        if (state.workspaces.length) {
            state.workspaces.forEach(function(workspace) {
                // Adding workspaces
                if (workspace.portfolios.length) {
                    items = [...items, ...workspace.portfolios];
                }
                // Adding projects
                if (workspace.projects.length) {
                    items = [...items, ...workspace.projects];
                    // Adding tasks
                    workspace.projects.forEach(function(project) {
                        if (project.tasks.length) {
                            items = [...items, ...project.tasks];
                        }
                    });
                }
            });
        }
        state.search_items = items;
    }

Свойство данных

data() {
        return {
            results: [],
            keys: ['title','description'],
            list:this.items,
        }
    },

1 Ответ

0 голосов
/ 14 апреля 2020

Если состояние обновляется правильно, время, необходимое для установки состояния, вызывает проблему. Это означает, что функция, которую вы используете для назначения state для data, отображается перед установкой состояния.

Вы можете использовать вычисленную функцию, которая возвращает состояние

computed:{
  items : function(){
    return this.$store.state.search_items;
  }
}

Теперь вы можете использовать имя вычисляемой функции items так же, как переменную данных.

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