Vì vậy, bạn đã đi đúng hướng. Bên trong của componentDidMount()
bạn, bạn có thể đã hoàn thành công việc bằng cách triển khai setInterval()
để kích hoạt thay đổi, nhưng hãy nhớ cách cập nhật trạng thái thành phần là thông qua setState()
, vì vậy bên trong của componentDidMount()
bạn, bạn có thể thực hiện điều này:
componentDidMount() {
setInterval(() => {
this.setState({time: Date.now()})
}, 1000)
}
Ngoài ra, bạn sử dụng Date.now()
cái nào hoạt động, với cách componentDidMount()
triển khai tôi đã đưa ra ở trên, nhưng bạn sẽ nhận được một tập hợp dài cập nhật các con số khó chịu mà con người không thể đọc được, nhưng về mặt kỹ thuật, đó là thời gian cập nhật mỗi giây tính bằng mili giây kể từ ngày 1 tháng 1 năm 1970, nhưng chúng tôi muốn làm cho thời gian này có thể đọc được để làm sao chúng ta con người thời gian đọc, vì vậy ngoài việc học tập và thực hiện các setInterval
bạn muốn tìm hiểu về new Date()
và toLocaleTimeString()
và bạn sẽ thực hiện nó như vậy:
class TimeComponent extends Component {
state = { time: new Date().toLocaleTimeString() };
}
componentDidMount() {
setInterval(() => {
this.setState({ time: new Date().toLocaleTimeString() })
}, 1000)
}
Lưu ý rằng tôi cũng đã gỡ bỏ constructor()
chức năng, bạn không nhất thiết phải cần đến nó, trình tái cấu trúc của tôi tương đương 100% với việc khởi tạo trang web với constructor()
chức năng.
react-interval-rerender