为什么获取请求在数组映射中不起作用?

时间:2018-11-05 05:39:09

标签: javascript reactjs many-to-many

我有一个包含对象()的数组,如下所示:

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

我将新行添加到数据库表事件并获取ID值。此后,我需要向另一个表 personToEvent 中添加新行,该表的 event 中的id值和数组 person 中的id值。数据库表 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 :(得分:0)

当我单击按钮时调用 addEventToDatabase(),我同时调用重新加载页面:

location.reload();

所以,我对此进行了评论,问题就消失了