.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))
}