React Router 5.1.0 はページジャンプナビゲーションを実装するために useHistory を使用します

React Router 5.1.0 はページジャンプナビゲーションを実装するために useHistory を使用します

React Router v4では、

  1. ルータコンポーネント
  2. タグを使用する

1. withRouterコンポーネントを使用する

withRouterコンポーネントは、履歴オブジェクトをコンポーネントのプロパティとして挿入します。

'react' から React をインポートします
'react-router-dom' から { withRouter } をインポートします。
'antd' から { Button } をインポートします

エクスポートconst ButtonWithRouter = withRouter(({ history }) => {
  console.log('履歴', 履歴)
  戻る (
    <ボタン
      タイプ='デフォルト'
      onClick={() => { history.push('/new-location') }}
    >
      クリックしてください!
    </ボタン>

  )
})

画像.jpg

import { ButtonWithRouter } from './buttonWithRouter'

または:

const ButtonWithRouter = (props) => {
  コンソールログ('props', props)
  戻る (
    <ボタン
      タイプ='デフォルト'
      onClick={() => { props.history.location.push('/new-location') }}
    >
      クリックしてください!
    </ボタン>

  )
}

デフォルトのエクスポート withRouter(ButtonWithRouter)

画像.jpg

インポート: import ButtonWithRouter from './buttonWithRouter'

2. ルートタグを使用する

ルート入口

画像.jpg

ルート コンポーネントは、場所の一致にのみ使用されるわけではありません。 パスなしでルートをレンダリングすることができ、ルートは常に現在の場所と一致します。 Route コンポーネントは withRouter と同じプロパティを渡すため、履歴プロパティを通じて履歴メソッドにアクセスできます。

それで:

エクスポートconst ButtonWithRouter = () => (
  <ルートレンダリング={({ history }) => {
    console.log('履歴', 履歴)
    戻る (
      <ボタン
        タイプ='ボタン'
        onClick={() => { history.push('/new-location') }}
      >
        クリックしてください!
      </ボタン>
    )
  }} />
) 

画像.jpg

React Router 5.1.0はuseHistoryを使用します

React Router v5.1.0からuseHistoryフックが追加されました。React >16.8.0を使用している場合は、useHistoryを使用してページジャンプを実現できます。

エクスポートconst ButtonWithRouter = () => {
  定数履歴 = useHistory();
  console.log('履歴', 履歴)
  戻る (
    <ボタン
      タイプ='ボタン'
      onClick={() => { history.push('/new-location') }}
    >
      クリックしてください!
    </ボタン>
  )
}

画像.jpg

React Router 5.1.0 の useHistory を使用したページジャンプナビゲーションの実装に関するこの記事はこれで終わりです。ReactRouter useHistory ページジャンプナビゲーションに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • React高階コンポーネントを使用してパンくずナビゲーションを実装する例
  • Android 開発用 React ナビゲーション ナビゲーション バーのスタイル調整 + 下隅のメッセージ プロンプト
  • React Native react-navigation ナビゲーションの使用法の詳細
  • react-navigation を使用した React Native でのクロスタブルーティング処理の詳細な説明
  • React Nativeのトップナビゲーションとボトムナビゲーションの使い方のヒントを詳しく説明
  • ページジャンプナビゲーションに react-navigation を使用する React-native の例
  • Reactはナビゲーションバーの二次リンクを実現する

<<:  HTML に埋め込まれた Flash HTML ウェブページ コードに Flash ファイルを埋め込むソリューション (パート 1)

>>:  MySQLはイベントを使用してスケジュールされたタスクを完了します

推薦する

VMware 15 を使用して仮想マシンをインストールし、CentOS 8 を使用する詳細な手順

序文:現在、Linux と .Net Core を学習しており、クロスプラットフォームの知識を学んで...

プロフェッショナルおよび非プロフェッショナルのウェブデザイン

まず、Web ページのスタイルの形成は、主に Web ページのレイアウト設計、ページの色処理、画像と...

CSSでよく使われるフォントスタイルを設定することで様々なフォントの変更が可能(例詳細説明)

CSS フォント プロパティは、テキストのフォント ファミリ、サイズ、太字、スタイル (斜体など)...

ボタンのタイプが送信として指定されていません。ボタンをクリックしても、指定された URL にジャンプしません。

現在、プロジェクトの要件により、フォームの送信を制御し、送信前にデータを検証および処理するために j...

MySQL の時間タイプの選択

目次日時タイムスタンプ選び方ミリ秒の時間を保存する方法結論MySQL は、日付と時刻を処理するために...

HTML CSS に基づく検索アイコン付き検索ボックス機能を実装する

序文フロントエンドで非常に便利な、小さなアイコン付きの検索ボックスを作成する方法をご紹介します。エフ...

MySQL テーブルとデータベース シャーディングのアプリケーション シナリオと設計方法

多くの友人がフォーラムやメッセージエリアで、どのような状況で MySQL をシャーディングする必要が...

Vueモバイル端末に最適な適応ソリューションについての簡単な説明

序文: 最近の医療モバイル プロジェクトに基づいて、Vue はさまざまな画面のさまざまな画面サイズに...

組み込み移植 docker エラー問題 (概要)

長い移植と情報検索の期間を経て、組み込みDockerの問題を解決することができました。インターネット...

検証コードケースのjs実装

この記事の例では、検証コードを実装するためのjsの具体的なコードを参考までに共有しています。具体的な...

Nexus サーバーを設定するための詳細な手順

1. ネクサスサービス構築の意義イントラネットの統合プロキシとして、チームで共同開発する場合、全員が...

HTML の iframe と frame の違いを例を使って説明します

プロジェクトで frameset 属性を使用したことがあるかどうかはわかりません。昨年、オンライン ...

Ubuntu 19にTheanoをインストールする際の問題を解決する

解決: pythearn2 パッケージをダウンロードしたディレクトリで、setup.py ファイルを...

Docker で MySQL クラスターを構築する方法の例

Docker の基本的な手順:アップデートパッケージ yum -y アップデートDocker仮想マシ...

Mysql | ワイルドカード(%、_ など)を使用したファジークエリの詳細な説明

ワイルドカードのカテゴリ: %パーセント ワイルドカード: 任意の文字が任意の回数出現できることを示...