Я все еще новичок в React, но я медленно продирался и наткнулся на то, на чем застрял.
Я пытаюсь создать компонент «таймер» в React, и, честно говоря, я не знаю, правильно ли я делаю это (или эффективно). В моем коде ниже, я установить состояние , чтобы вернуть объект { currentCount: 10 }
и играл с componentDidMount
, componentWillUnmount
и render
я могу получить только состояние на « обратный отсчет» от 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;
bind(this)
больше не нужен, react делает это самостоятельно.