Моей странице необходимо получить данные с сервера, которые могут занять несколько секунд. Таким образом, я хочу отображать «Загрузка ...» при извлечении. Таким образом, у меня есть переменная состояния boolean loading
, чтобы указать, извлекает ли она данные. Если loading
- true
, render()
дисплей функции «Загрузка сейчас», в противном случае отображается «Не погрузка». Однако оказывается, что реакция не может повторно отобразить компонент после установки loading
в true.ReactJS: как немедленно обновить компонент после изменения состояния
Адрес jsfiddle.
var Hello = React.createClass({
getInitialState: function() {
return {
loading: false,
};
},
handleClick: function() {
this.setState({
loading: true
}, function() {
// dummy loop to simulate fetching data
for (var i=0;i<=100000;i++) {
console.log("dummy");
}
this.setState({
loading: false,
});
}.bind(this));
},
render: function() {
if (this.state.loading) {
return (
<div>
<button onClick={this.handleClick}>
load
</button>
<p>Loading now</p>
</div>
);
}
return (
<div>
<button onClick={this.handleClick}>
load
</button>
<p>Not Loading</p>
</div>
);
}
});
ReactDOM.render(
<Hello />,
document.getElementById('container')
);
В коде отсутствует переменная 'fetching'. Вы имели в виду «погрузка»? –
Да. Я отредактирую его. –