Bagaimana untuk Menghantar Props dalam Pautan dengan React-Router?

Susan Sarandon
Lepaskan: 2024-11-01 13:20:29
asal
816 orang telah melayarinya

How to Pass Props in Link with React-Router?

Melalui Props dalam Link React-Router

Komponen Pautan React-Router membenarkan penghantaran data antara komponen. Untuk berbuat demikian, tentukan parameter dalam to prop Pautan dan nilai untuk parameter itu boleh diakses dalam komponen yang dipautkan menggunakan this.props.

Isu:

Kod yang disediakan gagal menghantar prop kepada komponen yang dipautkan kerana laluan laluan tiada daripada definisi.

Penyelesaian:

Tambah parameter laluan ke definisi:

<Route name="ideas" path="/:testvalue" handler={CreateIdeaView} />
Salin selepas log masuk

Melalui Data menggunakan Lokasi:

Apabila menggunakan react-router v4/v5, data boleh dihantar melalui objek lokasi:

Pautan (Pertanyaan):

<Link to={{pathname: '/', query: {backUrl: 'theLinkData'}}} />
Salin selepas log masuk

Pautan (Cari):

<Link to={{pathname: '/', search: '?backUrl=theLinkData'}} />
Salin selepas log masuk

Mengakses Data (Komponen Fungsian ):

const CreatedIdeaView = () => {
  const { query, search } = useLocation();
  console.log(query.backUrl, new URLSearchParams(search).get('backUrl'));
};
Salin selepas log masuk

Mengakses Data (Komponen Kelas):

class CreateIdeaView extends React.Component {
  render() {
    console.log(this.props.location.query.backUrl);
    return <div>{this.props.location.query.backUrl}</div>;
  }
}
Salin selepas log masuk

Contoh:

class App extends React.Component {
  render() {
    return (
      <div>
        <Link to={{pathname: '/ideas', query: {foo: 'bar'}}} />
        <RouteHandler />
      </div>
    );
  }
}
Salin selepas log masuk
class Ideas extends React.Component {
  render() {
    const { match, location } = this.props;
    console.log('props form link', this.props);
    return <p>{location.query.foo}</p>;
  }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Props dalam Pautan dengan React-Router?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!