Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Memberi Props dengan Berkesan kepada `this.props.children` dalam React?

Bagaimana untuk Memberi Props dengan Berkesan kepada `this.props.children` dalam React?

Patricia Arquette
Lepaskan: 2024-12-20 05:22:13
asal
1027 orang telah melayarinya

How to Effectively Pass Props to `this.props.children` in React?

Cara menghantar props kepada {this.props.children}

Niat soalan ini adalah untuk menjelaskan cara yang betul untuk menghantar props kepada semua kanak-kanak dalam pembungkus komponen yang menggunakan {this.props.children} untuk rendering.

Mengklon Kanak-kanak dengan Baharu Props

Satu pendekatan melibatkan penggunaan React.Children, yang mengulangi setiap elemen kanak-kanak dan mengklonkannya dengan prop baharu melalui React.cloneElement. Walau bagaimanapun, kaedah ini secara amnya tidak digalakkan kerana ia boleh membawa kepada kod yang rapuh.

Untuk menggambarkan, pertimbangkan kod berikut:

const Child = ({ childName, sayHello }) => (
  <button onClick={() => sayHello(childName)}>{childName}</button>
);

function Parent({ children }) {
  // This `sayHello` function is passed down to child elements.
  function sayHello(childName) {
    console.log(`Hello from ${childName} the child`);
  }

  const childrenWithProps = React.Children.map(children, child => {
    // `React.isValidElement` ensures the child is a valid React element.
    if (React.isValidElement(child)) {
      return React.cloneElement(child, { sayHello });
    }
    return child;
  });

  return <div>{childrenWithProps}</div>;
}
Salin selepas log masuk

Walaupun pendekatan ini membenarkan pemindahan prop kepada kanak-kanak, ia kurang selamat jenis dan berkemungkinan mengelirukan untuk dibaca berbanding dengan alternatif berikut:

function Parent({ children }) {
  // This `sayHello` function is passed down to child elements.
  function sayHello(childName) {
    console.log(`Hello from ${childName} the child`);
  }

  // Directly passing props to children.
  return <div>{children(sayHello)}</div>;
}
Salin selepas log masuk

Pendekatan terakhir ini lebih secara eksplisit menyampaikan niat untuk menyampaikan prop kepada kanak-kanak dan mengekalkan keselamatan jenis.

Atas ialah kandungan terperinci Bagaimana untuk Memberi Props dengan Berkesan kepada `this.props.children` dalam React?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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