Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Apakah yang perlu saya lakukan jika bertindak balas mempunyai data tetapi tidak dapat memberikannya?

Apakah yang perlu saya lakukan jika bertindak balas mempunyai data tetapi tidak dapat memberikannya?

藏色散人
Lepaskan: 2023-01-04 09:58:02
asal
2403 orang telah melayarinya

Penyelesaian kepada masalah yang React mempunyai data tetapi tidak dapat memberikannya: 1. Dalam kaedah pembinaan, panggil kaedah getXXX 2. Tetapkan setState dalam kaedah getXXX 3. Apabila permintaan getXXX menerima respons daripada pelayan, Apabila melaksanakan setState, hanya mencetuskan semula pemaparan halaman.

Apakah yang perlu saya lakukan jika bertindak balas mempunyai data tetapi tidak dapat memberikannya?

Persekitaran pengendalian tutorial ini: Sistem Windows 10, bertindak balas versi 18.0.0, komputer Dell G3.

Apakah yang perlu saya lakukan jika React mempunyai data tetapi tidak dapat memaparkannya?

react mendapat data latar belakang dan halaman pemaparan tidak dipaparkan

Penerangan masalah:

  • Hasil yang diingini: Dapatkan data latar belakang dan paparkannya dalam react Component akan dipaparkan apabila halaman pertama kali diberikan. percubaan

  • : Tentukan kaedah
  • di luar komponen, gunakan

    untuk meminta hasil latar belakang, panggil kaedah dalam pembina getXXX dan tetapkan hasil daripada kaedah untuk axios Dalam atribut, Componentstate

  • hasil pepijat: Data latar belakang menerima permintaan dan mengembalikan hasil dengan betul, tetapi halaman tidak dipaparkan Gunakan
  • untuk output hasil

    , dan hasilnya betul consoleGetXXX

  • penyelesaian masalah pepijat: Telah ditentukan bahawa latar belakang menerima permintaan dan mengembalikan hasil yang betul, dan bahagian hadapan juga mengeluarkan hasil yang betul, yang bermaksud bahawa pemaparan halaman mendahului pemerolehan data, tetapi komponen
  • Urutan pemuatan adalah untuk membina kaedah dahulu dan kemudian memanggil

    . Jadi ia hanya boleh menjadi masalah tak segerak reactrender

  • Analisis:
  • ialah permintaan tak segerak Kaedah ini dipanggil dalam pembina, tetapi hasilnya tidak diperoleh serta-merta, jadi nilai diberikan kepada

    ialah Pembolehubah ahli hasil, hasilnya mestilah kosong, jadi halaman yang diberikan tidak mempunyai data axiosstate

  • percubaan: Gunakan permintaan
  • dalam

    kaedah untuk mendapatkan hasil Kemudian gunakan kaedah render untuk menetapkan keputusan kepada axios. Akibatnya, ralat dilaporkan semasa berjalan, kerana ia akan menyebabkan gelung tak terhingga, kerana setState akan mengemas kini halaman, iaitu, memanggil kaedah state dan memanggil setState dalam kaedah render akan menyebabkan gelung tak terhingga rendersetState

  • Kaedah pemprosesan yang betul: Dalam kaedah pembinaan, panggil kaedah
  • dan tetapkan

    dalam kaedah getXXX, supaya halaman akan menjadi dipaparkan dahulu (hasil data kosong), dan apabila permintaan untuk getXXX diterima daripada pelayan Selepas membalas, pemaparan halaman akan dicetuskan semula apabila setState dilaksanakan. Oleh kerana masa respons permintaan adalah berkaitan dengan pemprosesan pelayan, apabila masa respons pendek, bahagian hadapan tidak akan melihat hasil data kosong Jika masa respons latar belakang panjang, anda boleh menambah getXXX komponen pemuatan setState untuk menunjukkan bahawa ia sedang dijalankanAntdSpin

Pembelajaran yang disyorkan: "
tutorial video bertindak balas

"

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika bertindak balas mempunyai data tetapi tidak dapat memberikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan