Следующий функциональный компонент React запускает ловушку useEffect дважды, даже если в качестве второго аргумента передается пустой массив [], а компонент добавляется на страницу только один раз:
const Tips = () => {
const [idx, setIdx] = useState(0)
useEffect(() => {
console.log('start use effect')
const interval = setInterval(() => {
setIdx(idx + 1)
}, 1000)
}, []) // empty array: run effect only once
return <>{idx}</>
}
Как сделатьуверены, что интервал запускается только один раз внутри функции обратного вызова useEffect?
Кроме того, состояние idx обновляется только один раз, компонент выводит 0 и позже 1. Как изменить компонент так, чтобы счетчик idx продолжал увеличиваться?