ホームページ  >  に質問  >  本文

React Router v6 でプログラムによってルートにリダイレクトする場合の問題

ボタンの onSubmit など、一部のユーザー アクションに対してナビゲーションを実行したいと考えています。ユーザーが「連絡先の追加」ボタンをクリックしたと仮定して、react-router がホームページ「/」でリダイレクトするようにします。現在、私はこの問題に直面しています --> TypeError: Cannot readproperties of unknown (reading 'push'). 初心者として、専門家の助けを本当に感謝しています。

AddContacts.js

リーリー

これは App.js ファイルです

リーリー


P粉693126115P粉693126115377日前623

全員に返信(2)返信します

  • P粉905144514

    P粉9051445142023-10-31 19:13:17

    React Router v6 でリダイレクトする方法

    リーリー

    返事
    0
  • P粉384244473

    P粉3842444732023-10-31 13:19:10

    ###質問###

    これは、存在しない未定義の

    navigate

    プロパティから移動しようとしているためです。 リーリー

    useNavigate

    フックは関数コンポーネントとのみ互換性があるため、クラス コンポーネントで navigate を使用する必要がある場合は、AddContacts を次のように変換する必要があります。関数コンポーネント、または独自のカスタム withRouter 高次コンポーネントをロールして、react-router- の withRouter HOC v5 などの「ルート プロパティ」を挿入します。 dom.xはやりました。 ###解決### クラスコンポーネントを関数コンポーネントに変換する方法は紹介しません。カスタム

    withRouter

    HOC の例を次に示します:

    リーリー

    そして、AddContacts コンポーネントを新しい HOC で装飾します。

    リーリー

    navigate プロパティ (および設定した他のプロパティ

    ) が装飾されたコンポーネントに渡され、

    this.navigate が定義されます。 さらに、ナビゲーション API は v5 から v6 に変更され、直接の history オブジェクトは使用されなくなりました。

    navigate

    はオブジェクトではなく関数です。使用するには、関数を呼び出して 1 つまたは 2 つの引数を渡します。最初の引数はターゲット パスで、2 つ目は replace キーや state キーを使用したオプションの「オプション」です。価値。 これで、ナビゲーションは次のようになります: リーリー

    返事
    0
  • キャンセル返事