this.setState () не будет выполняться с конкретным объектом - PullRequest
4 голосов
/ 31 мая 2019

Я не могу понять, что происходит, и надеюсь, что свежие глаза помогут.Это работало хорошо в течение нескольких дней, а теперь нет, без изменений.

У меня есть 2 объекта - gamesImages и gamePlay.gamePlay - это запись, включающая несколько таблиц соединения.gameImages - это 10 разных записей.

Я звоню:

matchingGameApiHelper.getGamePlay(this.props.currentUser.authToken, data)
  .then(data => {
      let gameData = data.data
      console.log(gameData.data.gameImages)
      //output -> (10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]

      this.setState({
        activeGame: true,
        room: room,
        gamePlay: gameData.data.gamePlay,
        gameImages: gameData.data.gameImages,
      }, () => console.log('setState is done'))
})
.catch(error => {
    console.log(error)
})

Когда строка gameImages: gameData.data.gameImages удалена, она работает нормально.При этом он не обновляет состояние и не выдает ошибку.Это в основном просто останавливается и ничего не запускает после него.Я также попытался сохранить только один из них: gameImages: gameData.data.gameImages[0], и это прекрасно работает.

ОБНОВЛЕНИЕ: вот начальное состояние

this.state = {
  activeGame: '',
  room: '',
  gamePlay: [],
  gameImages: [],
 }

Я также пытался gameImages: {},

UPDATE2 - это расширенный вывод для gameImages:

(10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
0: {id: 1, image_file_name: "adult-afro-beautiful-1858175.jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:44:54.382Z", …}
1: {id: 2, image_file_name: "adult-asian-blue-936593.jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:46:41.291Z", …}
2: {id: 3, image_file_name: "adult-attractive-beautiful-1197132_(1).jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:47:06.869Z", …}
3: {id: 4, image_file_name: "adult-attractive-casual-247885.jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:47:41.877Z", …}
4: {id: 5, image_file_name: "adult-beach-casual-736716.jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:47:55.862Z", …}
5: {id: 6, image_file_name: "adult-beard-cute-1250426.jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:48:15.063Z", …}
6: {id: 7, image_file_name: "adult-beautiful-brunette-1181686.jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:48:46.868Z", …}
7: {id: 8, image_file_name: "adult-beautiful-cute-1520760.jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:49:29.462Z", …}
8: {id: 9, image_file_name: "adult-beautiful-cute-1895160.jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:49:47.166Z", …}
9: {id: 10, image_file_name: "adult-blue-boy-1438275.jpg", exchange_id: 58, premium: false, created_at: "2019-04-30T22:50:10.189Z", …}
length: 10
__proto__: Array(0)

и вот возвращенные исходные данные:

data:
  gameImages: (10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
  gamePlay: {id: 482, player_one: 32, player_two: null, room: "LEX305", exchange_id: 58, …}
__proto__: Object 
...