Я все еще довольно новичок в React, но я медленно размалывал, и я столкнулся с чем-то, на что я застрял.
Я пытаюсь создать компонент "таймер" в React, и, честно говоря, я не знаю, буду ли я делать это правильно (или эффективно). В моем коде ниже я установил состояние, чтобы вернуть объект { currentCount: 10 }
и был связан с componentDidMount
, componentWillUnmount
и render
, и я могу получить только состояние "count down" от 10 до 9.
Вопрос из двух частей: что я ошибаюсь? И есть ли более эффективный способ использования setTimeout (вместо использования componentDidMount
и componentWillUnmount
)?
Спасибо заранее.
import React from 'react';
var Clock = React.createClass({
getInitialState: function() {
return { currentCount: 10 };
},
componentDidMount: function() {
this.countdown = setInterval(this.timer, 1000);
},
componentWillUnmount: function() {
clearInterval(this.countdown);
},
timer: function() {
this.setState({ currentCount: 10 });
},
render: function() {
var displayCount = this.state.currentCount--;
return (
<section>
{displayCount}
</section>
);
}
});
module.exports = Clock;