Ваш console.log (this.state.urgency) получает старое значение, потому что setState () асинхронный в отличие от this.state = {...}, который является синхронным, и я думаю, откуда возникла путаница.
setState () будет помещен в очередь событий компонента и будет вызываться когда-нибудь в будущем, но всегда после завершения функции, вызванной в нем. Однако вы можете принудительно выполнить некоторый код после завершения функции через setState ({...}, function () {...}).
Ожидаемый результат будет получен, если вы переключитесь на следующее:
radioHandler (e) {
console.log(this.state.urgency);
if(e.target.value === "si"){
this.setState({
urgency : true
}, function() { console.log(this.state.urgency); })
}
else if(e.target.value === "no"){
this.setState({
urgency : false
}, function() { console.log(this.state.urgency); })
}
}