adresinden ödünç alma Bu hakkı düzelttiğimi bilmiyorum, bu yüzden benimle birlikte ol. Temel olarak, çalışan bir sayıcı (artışlar veya azaltmalar) olan bir bileşenim var. Diğer bileşen (varsayılan olarak) 25'den 0'a kadar geri sayım yapan bir zamanlayıcıdır.Bir mülkün değerini React
Daha önce, zamanlayıcıyı yalnızca 25 değerine ayarlamıştım, ancak zamanlayıcı değeri olarak zamanlayıcısını değiştirmeye çalışıyorum. sayaç olarak değişir ve kullanım "başlat" düğmesine basıldığında, zamanlayıcı, sayaç tarafından ayarlanan herhangi bir sayıdan geri sayılır.
Bileşenleri tek tek değil, birlikte çalışabilirim. ayarını this.props.time
değerine ayarlamaya çalıştım ve ardından this.state.currentCount
değerini değiştirdim, ancak şans yok. Ya zamanlayıcı büyüyor ya da sayacın değerini yansıtmıyor.
Bunun yerine componentWillReceiveProps
kullanmalı mıyım emin değilim.
Herhangi bir yardım büyük memnuniyetle karşılanacaktır. Eğer yardımcı olursa, altta bir ekran görüntüsü var.
Oturum Bileşen:
const Session = React.createClass({
getInitialState: function() {
return {
minutes: 25,
seconds: 0
};
},
increment: function() {
this.setState({ minutes: this.state.minutes + 1 });
},
decrement: function() {
this.setState({ minutes: this.state.minutes - 1 });
},
timeToString: function(time) {
return time + ':00';
},
render: function() {
return (
<section>
<button onClick={this.increment}>+</button>
<button onClick={this.decrement}>-</button>
{this.state.minutes}
<Clock time={this.state.minutes}/>
</section>
);
}
});
module.exports = Session;
Saat Bileşen:
const Clock = React.createClass({
getInitialState: function() {
return { currentCount: this.props.time };
},
startTimer: function() {
var intervalId = setInterval(this.timer, 1000);
this.setState({ intervalId: intervalId });
},
pauseTimer: function() {
clearInterval(this.state.intervalId);
this.setState({ intervalId: this.props.time });
},
timer: function() {
var newCount = this.state.currentCount - 1;
if (newCount >= 0) {
this.setState({ currentCount: newCount });
} else {
clearInterval(this.state.intervalId);
}
},
render: function() {
return (
<section>
<button onClick={this.startTimer}>Start</button>
<button onClick={this.pauseTimer}>Pause</button>
{this.props.time}
<br></br>
{this.state.currentCount}
</section>
);
}
});
module.exports = Clock;
Js-fiddle harika olurdu –
Bunu anlamaya çalışıyorum. JSfiddle'da çalışmanın tüm parçalarını almak, olması gerekenden daha zor. – Jose