Bolehkah Anda Menggunakan Async Await Terus Dalam Fungsi Render React?

Susan Sarandon
Lepaskan: 2024-10-18 15:32:30
asal
699 orang telah melayarinya

Can You Use Async Await Directly Within a React Render Function?

Async Await in React Render Function

Masalah:
Anda ingin menggunakan ciri async await dalam fungsi render React komponen untuk melaksanakan operasi tak segerak, seperti mengambil data daripada API bahagian belakang. Walau bagaimanapun, anda menghadapi masalah dengan kata kunci await tidak dikenali dalam fungsi pemaparan.

Penyelesaian:

Walaupun anda boleh menggunakan kata kunci async dalam kaedah pemaparan komponen kelas , ia tidak disyorkan kerana pertimbangan prestasi. Sebaliknya, adalah lebih baik untuk memisahkan pengambilan dan paparan data kepada dua komponen berbeza:

Komponen Induk (Pengambilan Data):

<code class="javascript">class ParentComponent extends React.Component {
  constructor() {
    super();
    this.state = { data: null };
  }

  componentDidMount() {
    fetch('/api/data')
      .then(res => res.json())
      .then(data => this.setState({ data }));
  }

  render() {
    return this.state.data ? <ChildComponent data={this.state.data} /> : null;
  }
}</code>
Salin selepas log masuk

Komponen Anak (Data) Paparan):

<code class="javascript">const ChildComponent = ({ data }) => {
  return (
    <table>
      <tbody>
        {data.map((item, index) => (
          <tr key={index}>
            <td>{item.name}</td>
          </tr>
        ))}
      </tbody>
    </table>
  );
};</code>
Salin selepas log masuk

Penjelasan:

  • Komponen induk ParentComponent mengendalikan pengambilan data daripada API menggunakan fungsi pengambilan.
  • Setelah data diterima, ia menetapkan keadaan data, yang mencetuskan pemaparan semula.
  • Dalam kaedah pemaparan, komponen induk menyemak sama ada sifat data dalam keadaan wujud. Jika ia berlaku, ia menjadikan komponen kanak-kanak ChildComponent, memberikannya data yang diambil sebagai prop.
  • ChildComponent ialah komponen berfungsi tulen yang memaparkan data dalam jadual.

Nota:

Untuk komponen berasaskan cangkuk React, anda boleh menggunakan cangkuk useEffect untuk mengambil data dan mengemas kini keadaan komponen, memisahkan logik pengambilan data daripada fungsi pemaparan.

Atas ialah kandungan terperinci Bolehkah Anda Menggunakan Async Await Terus Dalam Fungsi Render React?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!