У меня есть вызов axios, где я хочу установить setState в моем компоненте, но одна из переменных состояния требует некоторой условной логики, а не того, что устанавливать состояние.Теперь я сомневаюсь, что лучше всего делать это
}).then(res =>
this.setState({
name: res.data.fname,
sName: res.data.sname,
percentage: res.data.percentage,
result: res.data.result,
showResult: true,
type: this.typeHandler(this.state.percentage) // here a tried calling a handler to make my conditional setState call
})
)
}
typeHandler = (percentage) =>{
if(percentage >= 50){
this.setState({type: 'succes'})
}else{
this.setState({type: 'failure'})
}
}
. Конечно, проблема с этим кодом состоит в том, что это произойдет асинхронно, и, следовательно, состояние не будет установлено правильно.первоначально.
Есть ли лучший способ улучшить эту логику, чтобы изначально состояние устанавливалось вместе с другими атрибутами, и я мог бы включить свою логику?
Я полагаю, альтернативой было бы получитьсначала процент, а затем просто вызывать обработчик после.