andreydobrin
@andreydobrin
Сложно , но это пока

Как сохранить позиции постов при их перемещении, когда обновляется страница?

Добрый день, дорогие друзья!
Делаю тех задание на vue, где есть пункт:

A0az6.png

Сперва получал эти посты с localstorage, где я мог успешно менять посты местами с сохранением позиций.
Сейчас, Я получаю эти посты уже с firebase database и их позицию тоже пытаюсь сохранить в localstorage, и при обновлении в первые миллисекунды посты на стоят где надо, но у меня уходит запрос на firebase, и посты снова становятся в тот порядок, в котором они прилетели с сервера.

Мне необходимо, чтоб посты прилетали с сервера, их позиции по id отправлялись в localstorage или как удобнее, но чтоб Я смог перетаскивать их и это все сохранялось так, как описано в тех задании (сверху) локально.

Вот запрос на firebase во vuex:

async fetchPosts({ commit }) {
      try {
        const response = (await firebase.database().ref(`/posts/`).once("value")).val() || {};

        const posts = Object.keys(response).map((key) => ({
          id: key,
          ...response[key],
        }));

        return posts;
      } catch (e) {
        commit("setError", e);
        throw e;
      }
    }


Делал мутацию типа:
pushPosts(state, posts) {
   state.posts = posts
}


Но она постоянно обновляла state при новом запросе на firebase. А запрос уходит при каждом обновлении.
Прошу помочь решить этот вопрос. Если появятся свои, то задавайте, распишу подробнее!
Благодарю и хорошего дня!
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
AntiStream
@AntiStream
Потоковый программист
Ну значит надо сортировать посты при каждом их получении из бд, то есть, в fetchPosts должна быть логика сортировки на основе данных из localstorage. Ну и обновлять порядок в localstorage, при каждом перетаскивание постов.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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