React.js tendo estado com base em outro estado
Estou com alguns problemas com o React.js e o estado não está sendo definido imediatamente ao chamar setState (). Não tenho certeza se existem maneiras melhores de abordar isso, ou se realmente é apenas uma falha do React. Eu tenho duas variáveis de estado, uma das quais é baseada na outra. (Violino do problema original:http://jsfiddle.net/kb3gN/4415/ você pode ver nos registros que não está definido imediatamente quando você clica no botão)
setAlarmTime: function(time) {
this.setState({ alarmTime: time });
this.checkAlarm();
},
checkAlarm: function() {
this.setState({
alarmSet: this.state.alarmTime > 0 && this.state.elapsedTime < this.state.alarmTime
});
}, ...
Ao ligarsetAlarmTime
, Desde athis.state.alarmTime
não é atualizada imediatamente, a seguinte chamada paracheckAlarm
conjuntosalarmSet
com base no valor anterior dethis.state.alarmTime
e, portanto, incorreto.
Eu resolvi isso movendo a chamada paracheckAlarm
no retorno de chamada desetState
nosetAlarmTime
, mas ter que rastrear qual estado é realmente 'correto' e tentar encaixar tudo nos retornos de chamada parece ridículo:
setAlarmTime: function(time) {
this.setState({ alarmTime: time }, this.checkAlarm);
}
Existe uma maneira melhor de fazer isso? Existem alguns outros lugares no meu código que eu refiro o estado que acabei de definir e agora não tenho certeza de quando posso confiar no estado!
obrigado