Вычисленное значение на основе созданного метода компонента - PullRequest
0 голосов
/ 02 апреля 2020

В моем компоненте у меня есть метод created, когда я делаю запрос, а затем хочу использовать полученные данные для свойства computed.

 computed: {
        ...mapState(["pages"]),
        pageContent() {
            let slug = this.$route.params.slug ? this.$route.params.slug : 'home' ;
            let page = this.pages.find(page => page.slug == slug);
            return page.content;
        }
    },
    methods: {
        ...mapActions(['setPagesAction'])
    },
    created() {
        this.setPagesAction();
    }

Проблема в том, что created выполняется после считывается вычисленное свойство pageContent, поэтому оно не определено.

Как заставить pageContent получить данные из created?

1 Ответ

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

Решение

Как известно, вычисляемое свойство будет обновляться при изменении зависимых данных. ie, когда в vuex назначено this.pages. Таким образом, у вас есть в основном три варианта.

Опция 1

Установите переменную так, чтобы до загрузки содержимого страницы времени отображался загрузочный счетчик et c.

Опция 2

Если вы используете vue -router, то используйте загрузчик beforeRouteEnter для загрузки данных. как здесь

Опция 3

Загрузка данных изначально (при запуске приложения) и добавление их в vuex. (при необходимости вы можете использовать модули vuex для разделения хранилища данных)

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