google_online
@google_online
My morning begins with coffee and Twitter.

Как сделать мутацию после удаления статьи в vuex?

Получаю статью, удаляю её, после меня редиректит на список всех статей. Программа работает, но только после редиректа, список статей не обновляется пока не обновлю страницу(F5).
Нужно что то сделать с мутацией как я понимаю.
my store.js
... ... ...
const actions = {
    remove_post({ commit }, data) {
        axios.delete('http://localhost:8000/app/posts/' + data + '/')
        .then(response => {
            commit('REMOVE_POST', data)
            console.log('done!')
        })
    }
}
const mutations = {
    REMOVE_POST(state, data) {
        // state.posts = data не понимаю как здесь сделать мутацию
    }
}

my post.vue
import { mapGetters } from 'vuex'
export default {
    name: 'post',
    data() {
        return {
            
            }
    },
    methods: {
        deletePost() {
            this.$store.dispatch('remove_post', this.$route.params.id)
            this.$router.push({name: 'all_posts'})
        }
    },
    created() {
        this.$store.dispatch('get_post', this.$route.params.id)
    },
    computed: mapGetters({
        post: 'getPost'
    }),
    components: {
        Header
    }
                                                           
}
</script>
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
@lemme
Frontend
Либо я что-то не понимаю, либо все слишком просто.
Я предполагаю, что state.posts - массив объектов (постов), то нужно удалить этот пост из массива, т.е банальный фильтр

p.s подозреваю, что data - id поста.
state.posts = state.posts.filter(post => post.id !== data)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы