Next.js の router.push は同じパスだと画面が再レンダリングされない、当たり前体操。
まぁ (再レンダリングを抑える事に尽力されてるから) 、多少はね ?
でもリンクを押されたらコンポ-ネントを初期化したかった。
で、key プロパティでコンポ-ネントの再レンダリングが操作出来る事を知った。
export default function Page() {
const [key, setKey] = useState(Date.now());
const reset = () => setKey(Date.now());
return (
<Hogehoge key={key} />
);
}
reset ファンクションを再レンダリングを制御したいコンポ-ネントに渡してもいいし、なんなら親コンポ-ネントから key を受け取る形でも OK。
key が変更されるとコンポ-ネントの再レンダリングが行われる。
なんか React 、この手の阿漕な手法ばっかり身に付いてきてるけど大丈夫かな… (独学の不安感)