ホームページ > ウェブフロントエンド > jsチュートリアル > React-Router とリンクして Props を渡すにはどうすればよいですか?

React-Router とリンクして Props を渡すにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-01 13:20:29
オリジナル
938 人が閲覧しました

How to Pass Props in Link with React-Router?

Link React-Router で Props を渡す

React-Router の Link コンポーネントを使用すると、コンポーネント間でデータを渡すことができます。これを行うには、Link の to プロパティでパラメータを定義します。そのパラメータの値は、リンクされたコンポーネントで this.props.

Issue:

を使用してアクセスできます。

ルート パスが に欠落しているため、提供されたコードはリンクされたコンポーネントに props を渡すことができませんでした。定義。

解決策:

パス パラメータを に追加します。定義:

<Route name="ideas" path="/:testvalue" handler={CreateIdeaView} />
ログイン後にコピー

Location を使用したデータの受け渡し:

react-router v4/v5 を使用する場合、データは location オブジェクトを介して受け渡すことができます:

リンク (クエリ):

<Link to={{pathname: '/', query: {backUrl: 'theLinkData'}}} />
ログイン後にコピー

リンク (検索):

<Link to={{pathname: '/', search: '?backUrl=theLinkData'}} />
ログイン後にコピー

データへのアクセス (機能コンポーネント) ):

const CreatedIdeaView = () => {
  const { query, search } = useLocation();
  console.log(query.backUrl, new URLSearchParams(search).get('backUrl'));
};
ログイン後にコピー

データへのアクセス (クラス コンポーネント):

class CreateIdeaView extends React.Component {
  render() {
    console.log(this.props.location.query.backUrl);
    return <div>{this.props.location.query.backUrl}</div>;
  }
}
ログイン後にコピー

例:

class App extends React.Component {
  render() {
    return (
      <div>
        <Link to={{pathname: '/ideas', query: {foo: 'bar'}}} />
        <RouteHandler />
      </div>
    );
  }
}
ログイン後にコピー
class Ideas extends React.Component {
  render() {
    const { match, location } = this.props;
    console.log('props form link', this.props);
    return <p>{location.query.foo}</p>;
  }
}
ログイン後にコピー

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

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