@DiseaseC

Как правильно изменить состояние компонента в мутациях?

Есть запрос из компонента:

this.$store.dispatch('FETCH_STORIES');

Действие:

FETCH_STORIES: ({ commit }) => {
        axios.get("http://hn.algolia.com/api/v1/search?tags=front_page")
            .then(response => {
                let result = response.data;
                commit("APPEND_STORY", result);
            })
},

Мутация:

APPEND_STORY: (state, article) => {
        state.stories.push(article);
    },

Стейт выглядит так:

state: {
    stories: [],
}

Из-за метода push в мутациях, данные в шаблон попадали завёрнутыми в массив (внутри был только один элемент), и чтобы получить доступ к данным приходилось пробегаться по массиву циклом. Мне необходимо от этого цикла избавиться, а значит, надо избавиться и от массива, и от метода push.
Пытаюсь как-то так, но данные не приходят:

APPEND_STORY: (state, payload) => {
        state.stories = payload;
    },

Как можно это исправить?
  • Вопрос задан
  • 271 просмотр
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
Для избавления от цикла можно сделать вместо массива объект или map с ключом id. Почему в сторе лажа - надо смотреть код. Мутация в целом правильная.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы