@GrampyBoy

Laravel — vue3 — vuex — пагинация. Как сохранять при перезагрузке?

Доброго времени суток, есть пагинация, которая работает, но при перезагрузке страницы - все возвращается на первую страницу, а в консоль прилетает /api/posts?page=undefined и выдает первую страницу (Или страницу, которую я укажу (page = 10) - тут все хорошо и в ответ /api/posts?page=10). Знаю где косяк, но не знаю как исправить Т_Т
Вот сам action

const actions = {
  AJAXGETPOST( {commit}, page) { // <-- тут косяк
    commit('LOADINGSTATUS', true)
      axios.get('/api/posts?page=' + page)
      .then(response => {
        commit('GETPOSTS', response.data.result );
      })
      .then(response => {
        commit('LOADINGSTATUS', false)
        if (page > 1) {
          router.push({query: {page: page}}); // Что-б url был с ?posts=...
        } else {
          router.push({query: {}}); // Что-б на 1 странице url был без ?posts=...
        }
      })
      .catch((error) => {
         console.log(error)
      }
    })
  }
}


Пробовал таким образом, при перезагрузке редирект на 10 страницу по умолчанию
AJAXGETPOST( {commit}, page = 10) {

Пробовал таким образом:
AJAXGETPOST( {commit}, page = {query: {page: page}}) {


Но мне выдает ?page=[object+Object]

Заранее благодарен, или киньте в меня что почитать)
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
@GrampyBoy Автор вопроса
Можно попробовать и куки, но очень интересно разобраться. По докам вижу только через vue-router, а вот через vuex N_N

UPD:
Разобрался, забыл отписать:
В computed добавил
page () {
    return this.$route.query.page || 1
}

в mounted:
mounted() {
        this.AJAXGETPOST(this.page);
    },
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Alex_mos
@Alex_mos
Google всему голова
Может лучше это хранить в cookies
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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