React'te hala oldukça yeniyim, ancak yavaş yavaş ilerledim ve takılıp kaldığım bir şeyle karşılaştım.
React'te bir "zamanlayıcı" bileşeni oluşturmaya çalışıyorum ve dürüst olmak gerekirse bunu doğru (veya verimli) yapıp yapmadığımı bilmiyorum. Aşağıda benim kodda, bir nesne döndürmek için durumu belirtmek { currentCount: 10 }
ve oynuyor olmuştur componentDidMount
, componentWillUnmount
ve render
ben sadece 10 ila 9'a kadar "geri sayım" devleti alabilirsiniz.
İki parçalı soru: Neyi yanlış anlıyorum? Ve setTimeout'u kullanmanın ( componentDidMount
& kullanmak yerine componentWillUnmount
) daha verimli bir yolu var mı?
Şimdiden teşekkür ederim.
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)
artık gerekli değil, react şimdi bunu kendi başına yapıyor.