NooBiToo
@NooBiToo

Объясните ошибку логики в компоненте?

Дано:
объект user
в user входит массив articles (тут id (12,13,14,15))
Что бы добавить статью пользователю я делаю следующее, укажу комментарии в коде
try {
        this.bookmarks = await this.user.articles.map(function (ids) {
          return ids.id; //получаю массив с ID
        });
        this.query = await id.concat(this.bookmarks); //добавляю ID нового article в массив articles с последующим созданием нового массива query
        this.user = await this.$strapi.$users.update("me", {
          articles: this.query, // отправляю данные на сервер для обновления
        });
      } catch (e) {
        this.error = e.response.data.message[0].messages[0].message;
}

Проблема следующая, если быстро нажимать по разным статьям что бы добавить, то добавляются не все, я сделал вывод, что это из-за того, что bookmarks я получаю из user, так же в запросе к серверу я обратно обновляю state user, и получается какой то "порочный" круг.
Как можно исправить это?
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
alex4answ
@alex4answ
1. Реорганизуйте работу с state, при добавлении - отправляйте инфу на сервер, но не обновляйте state по результатам этого запроса, обновляйте state локально
2. Используйте конечный автомат, чтобы не спамить запросами во время перехода состояния (но вам все равно ближе 1 вариант)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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