Отже, ви були на правильному шляху. Всередині componentDidMount()ви могли закінчити роботу, застосувавши, setInterval()щоб викликати зміну, але запам’ятайте спосіб оновлення стану компонентів через setState(), так що всередині вашого componentDidMount()ви могли зробити це:
componentDidMount() {
setInterval(() => {
this.setState({time: Date.now()})
}, 1000)
}
Крім того, ви використовуєте те, Date.now()що працює, з componentDidMount()реалізацією, яку я запропонував вище, але ви отримаєте довгий набір неприємних оновлень чисел, які не читаються для людини, але технічно це час, що оновлюється щосекунди в мілісекундах з 1 січня 1970 року, але ми хочу , щоб на цей раз для читання , як ми люди читання часу, тому в доповненні до навчання і реалізації setIntervalви хочете дізнатися про new Date()та toLocaleTimeString()і ви б реалізувати це подобається так:
class TimeComponent extends Component {
state = { time: new Date().toLocaleTimeString() };
}
componentDidMount() {
setInterval(() => {
this.setState({ time: new Date().toLocaleTimeString() })
}, 1000)
}
Зверніть увагу, що я також видалив constructor()функцію, вона вам не обов'язково потрібна, мій рефактор стовідсотковий еквівалент ініціалізації сайту з constructor()функцією.
react-interval-rerender