.map вернул JSON в состояние компонентов JS React

Я пытаюсь установить ответ моего "apiRequest" в состояние компонентов персонажей. Я дошел до регистрации возвращенного Json, но мне не удается решить, как преобразовать response.results в State.

Если бы кто-то мог помочь направить меня в правильном направлении, я был бы признателен, React наверняка имеет крутой кривой обучения, чтобы преодолеть!

Реагировать Компонент

class Characters extends React.Component {

  apiRequest() {
    request('http://localhost:3000/api', function (error, response, body) {
      if (!error && response.statusCode == 200) {
          var swapiRes = body
          console.log(swapiRes)
      }
    })
  }

    render() {
        return (
            <section id="character">
      {this.apiRequest()}
                <div className="container">
                </div>
            </section>
        )
    }
}

Вернулся JSON

{
    "count":87,
    "next":"http://swapi.co/api/people/?page=2",
    "previous":null,
    "results":
    [
        {
            "name":"Luke Skywalker",
            "gender":"male"
        },      
        {
            "name":"Han Solo",
            "gender":"male"
        }
    ]
}

1 ответ

Решение

Вам нужно снова установить состояние для вызванного метода рендеринга

лайк

getInitialState:function()
  {
    return{
      results:[]
    }
  },

Теперь вы можете установить состояние, как только ваш ответ API приходит

apiRequest() {
    request('http://localhost:3000/api', function (error, response, body) {
      if (!error && response.statusCode == 200) {
          var swapiRes = body
          console.log(swapiRes)
          var res=JSON.Parse(JSON.stringify(response));
          this.setState({results:res.results});
      }
    }.bind(this))
  }
Другие вопросы по тегам