Почему запрос выборки не работает в карте массива? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть массив с объектами ( person ), например:

[ {id: 1, name: Tony},
  {id: 2, name: John} ...]

Я добавляю в таблицу базы данных событие новую строку и получаю значение id. После этого мне нужно добавить новые строки в другую таблицу personToEvent со значением id из event и значениями идентификатора из массива person . Таблица базы данных personToEvent должна выглядеть следующим образом:

id | eventid | personid
 1 |     120 |        1
 2 |     120 |        2

Но на самом деле, после добавления новой строки в событие , выборка не вызывается. Я не знаю почему

Здесь я добавляю новую строку в событие :

addEventToDatabase() {
    fetch(`${Config.baseUrl}/event/add`, {
      method: 'PUT',
      body: JSON.stringify(this.state.newEvent),
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
      }
    })
        .then((response) => {
          if (response.status >= 400) {
            throw new Error('Bad response from server');
          }
          return response.json();
        })
        .then(returnedData => {
          if (this.state.person.length !== 0) {
            this.addPersonToEvent(returnedData.id);
          }
        });
  }

Здесь я пытаюсь добавить новые строки в personToEvent :

addPersonToEvent(lastEventId) {
    this.state.person.map(item => (
        fetch(`${Config.baseUrl}/person-event/add/${lastEventId}/${item.id}`, {
          method: 'PUT'
        })
            .then((response) => {
              if (response.status >= 400) {
                throw new Error('Bad response from server');
              }
              return response.json();
            })
        ));
  }

Новые строки не добавляются в таблицу базы данных. В консоли нет ошибок. Как правильно добавить строки в personToEvent ?


В общем, я пытаюсь реализовать модель данных «многие ко многим»

1 Ответ

0 голосов
/ 05 ноября 2018

Когда я нажимаю кнопку, которая вызывает addEventToDatabase () , я одновременно вызываю страницу перезагрузки:

location.reload();

Итак, я прокомментировал это, и проблема исчезла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...