useEffect内のsetIntervalでstateを更新する記事があまりなかったので、 書き残しておきます。
useEffectの中で、 setIntervalを使い、 定期的にstateを更新しようとすると、ちょっとした工夫が必要になります。詳細は以下の記事を読んでいただけたら分かると思います。
Making setInterval Declarative with React Hooks
上の記事が元ネタになるわけですが、 すぐに使えるようnpmに公開してくれている方がいました。
https://github.com/Hermanya/use-interval#readme
npm install use-interval
import React, { useState } from 'react';
import useInterval from 'use-interval';
const App: React.FC = () => {
const [state, setState] = useState<number>(0);
useInterval(() => {
setState(state + 1);
}, 1000);
return (
<div>{state}</div>
);
}