Как я могу изменить vue роутер при изменении параметров? (Vuex) - PullRequest
1 голос
/ 26 февраля 2020

Я создаю приложение с расширенным API поиска.

example

Вы можете выбрать, что искать и как сортировать результаты. Проблема в том, что страница (vue -router) обновляется только при изменении запроса, но она также должна обновляться при изменении условий поиска

Как я могу это сделать? У меня даже нет идей.

Мой код отвечает за запрос API и обновление маршрутизатора при обновлении запроса

export default {
    name: "Search",
    data: function () {
        return {
            selectedTag: 'story',
            selectedBy: '',
        };
    },
    components: {
        'Item': Item
    },
    mounted() {
        this.items = this.getItems(this.id)
    },
    beforeRouteUpdate(to, from, next) {
        this.items = this.getItems(to.params.id);
        next();
    },
    methods: {
        getItems(id) {
            this.items = this.$store.dispatch('FETCH_SEARCH_RESULTS', {id, tag: this.selectedTag, by: this.selectedBy});
            return this.items;
        },
    },
    created: function () {
        this.getItems(this.$route.params.id);
    },
    computed: {
        items: {
            get() {
                return this.$store.state.searchResults;
            },
            set(value) {
                this.$store.commit("APPEND_SEARCH_RESULTS", value);
            }
        }
    }
}
...