Я выполняю задачи, выполнение которых занимает несколько секунд, и я пытаюсь показать анимированный индикатор прогресса. При попытке установить состояние для обновления индикатора, он обновляется только после завершения задачи.
Я пытался использовать обратные вызовы для достижения этой цели, но, похоже, это не работает.
import React, { Component } from 'react'
import { Lion as Button } from 'react-button-loaders'
class xx extends Component {
constructor(props){
super(props)
this.state = {
buttonState: ''
}
this.handleClick = this.handleClick.bind(this)
}
Test(){
// Do task that takes some time
this.setState({buttonState: 'finished'} // End animation
}
handleClick() {
this.setState({buttonState: 'loading'},
() => {
this.Test()
})
}
render() {
return (
<div>
<Button onClick={this.handleClick} state={this.state.buttonState}>Test
</Button>
</div>
);
}
}
export default xx;
Если состояние не установлено как завершенное, индикатор активности появляется только после того, как вся задача уже выполнена.