Vue проверка компонента, если свойство состояния хранилища vuex уже заполнено данными - PullRequest
3 голосов
/ 23 марта 2020

вот мои настройки. Состояние «категории» в состоянии выбирается асин c из конечной точки json.

В компоненте, с которым я хочу работать с этими данными, но если я перезагружаю страницу, категории всегда пусты.

methods: {
        onSubmit() {
            console.log(this.filter);
        },
        formCats(items) {
            console.log(items);
            // const arr = flatten(data);
            // console.log(arr);
        }
    },
    created() {
        const data = this.categories;

        this.formCats(data);
    },
    computed: {
        ...mapState(['categories'])
    }

Я также попытался asyn c создал () с await this.categories. Также не работает, как ожидалось! Было бы здорово, если бы кто-то мог помочь мне с этим. Спасибо!

1 Ответ

0 голосов
/ 23 марта 2020

Это происходит потому, что асинхронное извлечение c не завершается sh до тех пор, пока компонент не будет загружен. Есть несколько способов справиться с этим, вот один. Удалите created и превратите метод formCats в computed.

computed: {
  ...mapState(['categories']),
  formCats() {
    let formCats = [];
    if (this.categories && this.categories.length) {
      formCats = flatten(this.categories);
    }
    return formCats;
  }
}

formCats сначала будет пустым массивом, а затем он немедленно станет вашими отформатированными категориями, когда this.categories закончила выборку.

...