Приведенный ниже код переопределяет мой JSX каждую секунду (1000), только если я добавлю + Math.random()
к .fromNow()
. Почему это так?
useEffect(()=>{
if(props.isLive) {
setTimeout(()=>{
console.log("setTimeAgo", props.time, props.time.fromNow())
setTimeAgo(props.time.fromNow());
}, 1000)
}
})
Я думал, что функция setTimeout повторяется до бесконечности? так что мой console.log должен отображаться в моей консоли, даже если мой DOM не рендерится?
UPDATE : я понимаю, что мое неверное представление о setTimeout .. что оно просто отстает от вывода на 1 секунду , Попытка выяснить, как заставить timeA go обновляться каждую секунду, а затем повторно отображать DOM, только если timeA go меняет свое предыдущее состояние.
Понимая, что все, что мне нужно сделать, это изменить setTimeout на setInterval .. есть что-то, что я пропускаю помимо этого?