Вы должны использовать prevState
в setState
вместо использования this.state
handlePercent = () => {
if (this.state.phone !== "") {
this.setState(prevState=> ({
percent: prevState.percent + 20,
}))
} else if(this.state.website!==""){
this.setState(prevState=> ({
percent: prevState.percent + 20,
}))
}
// don't return state
}
И передать this.state.percent
на Progress
<Progress percent={this.state.percent}/>
И позвонить handlePercent
в каком-то другом месте кода.
Причина don't return state
заключается в том, что при вызове this.setState
он выполнит повторную визуализацию компонента и сделает this.state.percent
правильный процент. Если вы вернете this.state.percent
, он вернет неверные данные.
Пожалуйста, добавьте полные логики c компонента, чтобы лучше понять, как делать то, что вы хотите.