Jadi Anda berada di jalur yang benar. Di dalam Anda, componentDidMount()
Anda dapat menyelesaikan pekerjaan dengan menerapkan setInterval()
untuk memicu perubahan, tetapi ingat cara untuk memperbarui status komponen adalah melalui setState()
, jadi di dalam Anda, componentDidMount()
Anda dapat melakukan ini:
componentDidMount() {
setInterval(() => {
this.setState({time: Date.now()})
}, 1000)
}
Juga, Anda menggunakan Date.now()
yang berfungsi, dengan componentDidMount()
implementasi yang saya tawarkan di atas, tetapi Anda akan mendapatkan serangkaian panjang pembaruan angka-angka buruk yang tidak dapat dibaca manusia, tetapi secara teknis waktu memperbarui setiap detik dalam milidetik sejak 1 Januari 1970, tetapi kami ingin membuat waktu ini mudah dibaca sebagaimana kita manusia membaca waktu, jadi selain belajar dan menerapkan setInterval
Anda ingin belajar tentang new Date()
dan toLocaleTimeString()
dan Anda akan menerapkannya seperti ini:
class TimeComponent extends Component {
state = { time: new Date().toLocaleTimeString() };
}
componentDidMount() {
setInterval(() => {
this.setState({ time: new Date().toLocaleTimeString() })
}, 1000)
}
Perhatikan saya juga menghapus constructor()
fungsinya, Anda tidak perlu itu, refactor saya 100% setara dengan menginisialisasi situs dengan constructor()
fungsi tersebut.
react-interval-rerender