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 renderdan 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 Componenttidak mengikat otomatis. Jadi itu tergantung pada bagaimana Anda membuat komponen apakah Anda perlu mengikat.
bind(this)tidak lagi diperlukan, bereaksi melakukan ini sendiri sekarang.