Отже, ви були на правильному шляху. Всередині 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