React Router Linkを再度クリックした際に更新する方法


  1. キーを使用して再描画する: React RouterのLinkコンポーネントにキーを追加することで、同じリンクを再度クリックした場合にコンポーネントを再描画できます。次のように書き換えてみてください:

    import { Link } from 'react-router-dom';
    function MyLinkComponent() {
     const [refresh, setRefresh] = useState(false);
     function handleClick() {
       setRefresh(!refresh);
     }
     return (
       <Link key={refresh.toString()} to="/path" onClick={handleClick}>
         リンク
       </Link>
     );
    }

    この方法では、クリックごとにキーの値が切り替わり、コンポーネントが再描画されます。

  2. 強制的にページを再読み込みする: もう1つの方法は、クリック時にページを強制的に再読み込みすることです。これには、windowオブジェクトのlocation.reload()メソッドを使用します。以下に例を示します:

    import { Link } from 'react-router-dom';
    function MyLinkComponent() {
     function handleClick() {
       window.location.reload();
     }
     return (
       <Link to="/path" onClick={handleClick}>
         リンク
       </Link>
     );
    }

    この方法では、リンクをクリックするたびにページ全体が再読み込みされます。

これらの方法を使用することで、React RouterのLinkコンポーネントを再度クリックした際にページを更新することができます。適切な方法を選択し、プロジェクトの要件に合わせて実装してください。