Я видел много таймеров обратного отсчета в JavaScript и хотел, чтобы один из них работал в React.Таймер обратного отсчета в реакторе
Я позаимствовал эту функцию я нашел в Интернете:
secondsToTime(secs){
let hours = Math.floor(secs/(60 * 60));
let divisor_for_minutes = secs % (60 * 60);
let minutes = Math.floor(divisor_for_minutes/60);
let divisor_for_seconds = divisor_for_minutes % 60;
let seconds = Math.ceil(divisor_for_seconds);
let obj = {
"h": hours,
"m": minutes,
"s": seconds
};
return obj;
};
И тогда я написал этот код самого
initiateTimer =() => {
let timeLeftVar = this.secondsToTime(60);
this.setState({ timeLeft: timeLeftVar })
};
startTimer =() => {
let interval = setInterval(this.timer, 1000);
this.setState({ interval: interval });
};
timer =() => {
if (this.state.timeLeft >0){
this.setState({ timeLeft: this.state.timeLeft -1 });
}
else {
clearInterval(this.state.interval);
//this.postToSlack();
}
};
В настоящее время OnClick будет установить время на экране: Time Remaining: 1 m : 0 s
Но это не уменьшает его до Time Remaining: 0 m : 59 s
, а затем Time Remaining: 0 m : 58 s
и т. д.
Я думаю, мне нужно снова вызовите функцию с другим параметром. как я могу это сделать?
EDIT: Я забыл сказать, я хотел бы, чтобы ФУНКЦИОНАЛЬНОСТИ ТАК ЧТО Я МОГУ ИСПОЛЬЗОВАТЬ НА ПРОТОКОЛ СЕКУНД & СЕКУНД
Одним из [РЕАКТ примеры документации] (https://facebook.github.io/react/docs/state-and-lifecycle.html) это часы что обновляет себя, похоже, было бы довольно полезно ... –
@TJCrowder это полу полезно. они просто получают время, хотя могут вернуть его через componentDidMount, тогда как я хочу только извлечь секунды и минуты из исходной позиции. –
Возможно, вы могли бы поставить runnable [mcve] в вопрос, используя Stack Snippets, который [поддерживает React и JSX] (http://meta.stackoverflow.com/questions/338537/how-do-i-create-a-reactjs-stack-snippet-with-jsx-support), чтобы мы могли видеть проблему в действии. –