Saya masih cukup baru di React, tetapi saya telah bekerja dengan lambat dan saya menemukan sesuatu yang membuat saya terjebak.
Saya mencoba membuat komponen "pengatur waktu" di React, dan sejujurnya saya tidak tahu apakah saya melakukan ini dengan benar (atau efisien). Dalam kode saya di bawah ini, saya mengatur negara untuk mengembalikan objek { currentCount: 10 }
dan telah mempermainkan dengan componentDidMount
, componentWillUnmount
, dan render
dan saya hanya bisa mendapatkan negara untuk "count down" 10-9.
Pertanyaan dua bagian: Apa yang salah? Dan, apakah ada cara yang lebih efisien untuk menggunakan setTimeout (daripada menggunakan componentDidMount
& componentWillUnmount
)?
Terima kasih sebelumnya.
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)
karena ini. Pengatur waktu itu sendiri tidak berfungsi
class Clock extends Component
tidak mengikat otomatis. Jadi itu tergantung pada bagaimana Anda membuat komponen apakah Anda perlu mengikat.
bind(this)
tidak lagi diperlukan, bereaksi melakukan ini sendiri sekarang.