最佳答案
我在 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;