отправка на сервер с получением API - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь изменить любимое состояние сообщения на true или false на моем сервере, но я продолжаю сталкиваться с этой проблемой снова и снова.Я нажимаю на кнопку «Избранное» и, конечно же, меняется состояние «Избранное».но потом, когда я нажимаю на нее снова, ничего не происходит. Ничего не меняется.затем, если я удаляю статический кеш и нажимаю на кнопку «Избранное», это меняет состояние «Избранное», но только в первый раз.в основном каждый раз, когда мне нужно изменить состояние, я должен удалить cache.same, что происходит, когда я пытаюсь добавить отзывы на сервер.это мой код для добавления избранного на сервер

static setFavorite() {
      const id = self.restaurant.id;
      const fav_state = self.restaurant.is_favorite;
      const fav_div = document.getElementById('fav_div');
      let image = document.getElementById('fav_img');
      console.log("fav", fav_state);

      if (fav_state == 'true') {
    DBHelper.toggleFavorite(id, false);
    } else {
      DBHelper.toggleFavorite(id, true);
    }
  }

  static toggleFavorite(id, value) {
    fetch('http://localhost:1337/restaurants/' + id + '/?is_favorite=' + value,
      {
        method: 'POST',
        headers: {
            "Content-Type": "application/json; charset=utf-8",
        },
        value: JSON.stringify(value)
      })
    .then(r => r.json())
      .then(res => console.log(value));
  }

1 Ответ

0 голосов
/ 09 октября 2018

Кажется, здесь не хватает какого-то кода.Похоже, функция setFavorite () берет fat_state из self.restaurant.is_favorite и передает это значение в toggleFavorite.Но в предоставленном вами коде нет ничего, что показывало бы, как изменяется self.restaurant.is_favorite.

Я не уверен, что в своем коде вы забыли перевернуть его со true до false иот false до true.

Также на заметку (для лучшего javascript в вашем коде) Не используйте == true и, возможно, попробуйте изменить код для строгого сравнения (=== верно), чтобы избежать каких-либо побочных эффектов.Также не уверен, зачем вам вообще нужен let image в вашем коде и тот код, связанный с изображениями, который вы предоставили.

...