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はイベントを使用してスケジュールされたタスクを完了します

推薦する

vue+springbootでログイン機能を実現

この記事の例では、ログイン機能を実現するためのvue+springbootの具体的なコードを参考まで...

docker を使用して Spring Boot をデプロイし、Skywalking に接続する方法

目次1. 概要1. スカイウォーキング入門2. スカイウォーキング建築3. スカイウォーキングはどの...

WebpackはCSSファイルを読み込み、その設定方法

webpackはCSSファイルとその設定をロードします複数の CSS ファイルを作成した後、HTML...

8桁の割引コードをランダムに生成し、MySQLデータベースに保存します。

現在、多くの企業が割引コードを通じてプロモーションを行っています。今では、8桁の割引コードを実装して...

CSS3 で translate と transition を使用する方法

translate と transition は非常に強力で、習得するのは不可能だといつも感じていま...

さまざまなターミナルで Mac が SSH 経由でリモート サーバーに接続する方法の説明

Macはシェル(ターミナル)SSHを使用してリモートサーバーに接続します前提条件: 接続する必要があ...

Mysql は最大接続数を表示し、最大接続数を変更します

MySQL 最大接続数の表示と最大接続数の変更1. 最大接続数を確認する '%max_con...

60件のページング事例と優れた実践例を推奨

<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...

Webpack コンポーネントの使用状況統計を実装するための 50 行のコード

背景最近、リーダーからコンポーネント ライブラリを構築するように依頼があり、プロジェクトで現在使用さ...

Vueでクラススタイルを使用する方法の詳細

目次1. ブール2. 表現3. マルチクラスパッケージ4. v-bind でクラス class を直...

MySQL 5.7 で my.ini ファイルが見つからない場合の解決策

my.ini とは何ですか? my.ini は、MySQL データベースで使用される設定ファイルです...

JS 9 Promise 面接の質問

目次1. 複数の .catch 2. 複数の .catch 3. .then と .catch の連...

単一の Nginx IP アドレスに複数の SSL 証明書を設定する例

デフォルトでは、Nginx は IP アドレスごとに 1 つの SSL 証明書のみをサポートします。...

VUE ユニアプリライフサイクルに関する簡単な説明

目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...

MySQLスレーブのメンテナンスに関する経験の共有

序文: MySQL マスター/スレーブ アーキテクチャは、最も一般的に使用されるアーキテクチャ セッ...