ホームページ > ウェブフロントエンド > jsチュートリアル > React Router ページ間でデータを効率的に渡すにはどうすればよいですか?

React Router ページ間でデータを効率的に渡すにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-17 06:59:25
オリジナル
628 人が閲覧しました

How to Efficiently Pass Data Between React Router Pages?

React Router を使用してあるページから別のページにデータを渡す方法

問題:

項目のリストからの移動詳細ページに移動し、選択した内容の詳細を伝えますitem.

解決策:

React Router を使用してページ間でデータを渡すには、主に 3 つのオプションがあります:

オプション 1: ルートを渡すState

ルートのアイテム ID を送信します状態:

v6 (宣言型):

<Link to="/home/userDetails" state={{ infoId: info.id }}>...</Link>
ログイン後にコピー

v6 (命令型):

import { useNavigate } from "react-router-dom";

const navigate = useNavigate();
navigate("/home/userDetails", { state: { infoId: info.id } });
ログイン後にコピー

v5 (宣言的):

<Link to={{ pathname: '/home/userDetails', state: { infoId: info.id } }}>...</Link>
ログイン後にコピー

v5 (命令的):

import { useHistory } from "react-router-dom";

const history = useHistory();
history.push({ pathname: '/home/userDetails', state: { infoId: info.id } });
ログイン後にコピー

宛先で状態を受け取るコンポーネント:

v6:

const { state: { infoId } = {} } = useLocation();
ログイン後にコピー

v5:

if (props.location && props.location.state && props.location.state.infoId) {
  // Access info ID
}
ログイン後にコピー

オプション 2: 何かを渡すURL内パス

URL パスにアイテム ID を含めます:

<Link to={`/home/userDetails/${info.id}`}>...</Link>
ログイン後にコピー

宛先でパラメータを受け取りますコンポーネント:

v6:

const { infoId } = useParams();
ログイン後にコピー

v5:

const infoId = props.match.params.infoId;
ログイン後にコピー

オプション 3: 何かを渡すURL クエリ内文字列

アイテム ID を URL クエリ文字列に追加します:

v6 (宣言型):

<Link to={{ pathname: '/home/userDetails', search: `?infoId=${info.id}` }}>...</Link>
ログイン後にコピー
ログイン後にコピー

v6 (命令的):

import { useNavigate } from "react-router-dom";

const navigate = useNavigate();
navigate({ pathname: '/home/userDetails', search: `?infoId=${info.id}` });
ログイン後にコピー

v5 (宣言的):

<Link to={{ pathname: '/home/userDetails', search: `?infoId=${info.id}` }}>...</Link>
ログイン後にコピー
ログイン後にコピー

v5 (命令的):

import { useHistory } from "react-router-dom";

const history = useHistory();
history.push({ pathname: '/home/userDetails', search: `?infoId=${info.id}` });
ログイン後にコピー

宛先でクエリパラメータを受信しますコンポーネント:

v6:

const [searchParams] = useSearchParams();
const infoId = searchParams.get("infoId");
ログイン後にコピー

v5:

if (props.location && props.location.search) {
  const searchParams = new URLSearchParams(props.location.search);
  const infoId = searchParams.get("infoId");
}
ログイン後にコピー

以上がReact Router ページ間でデータを効率的に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート