ホームページ  >  記事  >  ウェブフロントエンド  >  React Router のリンクでターゲット コンポーネントに Props を渡すにはどうすればよいですか?

React Router のリンクでターゲット コンポーネントに Props を渡すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-31 21:38:02737ブラウズ

How to Pass Props to Target Components in React Router's Link?

Link React-Router でプロパティを渡す

React-Router の Link コンポーネントを使用すると、ターゲット コンポーネントにプロパティを渡すことができます。ただし、データ転送を容易にするために適切なルート構成を確保することが重要です。

この問題は、ルート パスが意図したプロパティの取得と一致しない場合に発生します。提供されたコードでは、ターゲット コンポーネントに対応するパスがありません:

<Route name="ideas" handler={CreateIdeaView} />

問題を解決し、リンク経由でプロパティを渡すには、ルート設定でパスを指定し、 のパラメータと一致していることを確認します。コンポーネント:

<Route name="ideas" path="/:testvalue" handler={CreateIdeaView} />

:testvalue プレースホルダー パラメーターは、 で渡されるプロパティに対応します:

<Link to="ideas" params={{ testvalue: "hello" }} />

ターゲット コンポーネントの render メソッドでプロパティにアクセスできるようになりました:

render: function() {
  console.log(this.props.match.params.testvalue); // logs "hello"
}

機能コンポーネントでフックを使用すると、次のように props にアクセスできます。

const CreatedIdeaView = () => {
  const { testvalue } = useParams();
  console.log(testvalue); // logs "hello"
}

あるいは、パス パラメーターの代わりにクエリ パラメーターを渡す必要がある場合は、次のように使用できます。 :

<Link to={{pathname: '/ideas', query: {testvalue: "hello"}}} />

ターゲットコンポーネント内:

componentDidMount() {
    console.log(this.props.location.query.testvalue) // logs "hello"
}

以上がReact Router のリンクでターゲット コンポーネントに Props を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。