Изучаю реакт. Суть такая, Если ручками прописать Компонент со всеми параметрами в состоянии, он рендерится. Если я отправляю Ajax запрос на сервер, мне приходит ответ, с новым обьектом, и я добавляю его в состояние , этот-же Компонент уже не рендерится. Значит ручками он рендериться, а когда приходит с сервера не рендерится. Я так понимаю, проблема в том, что не срабатывает рендер на отрисовку новых компонентов?
import React, {Component} from 'react';
import Circle from './Circle';
let xhr;
class NewApp extends Component{
constructor(props){
super(props);
this.state={
arrays:[<Circle key='99' bgColor='red' />]
}
this.sob = this.sob.bind(this);
this.req = this.req.bind(this);
}
// Запрос
sob(){
xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:3001", true);
xhr.send();
xhr.addEventListener("readystatechange",this.req, false);
}
// Обработка запроса установка состояния с новыми данными
req(){
if(xhr.readyState === 4 && xhr.status === 200){
var response = JSON.parse(xhr.responseText);
this.state.arrays.push(<Circle key={this.state.arrays.length} bgColor={response.color} />)
}
}
render(){
return[
<div>
<div key="9324"><button key={77} onClick={this.sob}>Ещё инфа</button></div>
{this.state.arrays}
</div>
]
}
}
export default NewApp;
И собственно точка входа
import React from "react";
import ReactDOM from "react-dom";
import NewApp from './NewApp';
ReactDOM.render(
<NewApp />,
document.getElementById("root")
);