Я все ще досить новий в 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;
this.timer.bind(this)
запустив свою роботу, додавши , що цей таймер сам по собі не спрацював
class Clock extends Component
автоматично прив'язує методи, але не прив'язує автоматично. Тож від того, як ви створюєте свої компоненти, залежить, чи потрібно прив’язувати.
bind(this)
більше не потрібно, реагуйте, робить це самостійно зараз.