Rumah  >  Soal Jawab  >  teks badan

Keadaan dalam penggunaanImperativeHandle tidak berterusan

Andaikan saya berada dalam situasi ini:

const [data, setData] = useState([]);

dan masukkan ke dalam useImperativeHandle seperti ini:

useImperativeHandle(ref, () => ({
   data,
}));

Apabila saya menggunakan useEffect untuk menjejaki jika keadaan berubah seperti ini:

useEffect(() => {
   console.log(componentRef.current.data);
}, [componentRef.current.data])

Tak berkesan cuma kalau check manual macam ada butang onClick akan print kalau tak stateful. Kenapa ini terjadi? Adakah terdapat cara lain untuk menjadikannya berfungsi? Atau adakah ia satu-satunya cara untuk memindahkan keadaan kepada ibu bapa?

P粉786800174P粉786800174172 hari yang lalu260

membalas semua(1)saya akan balas

  • P粉674999420

    P粉6749994202024-04-01 18:22:37

    Komponen

    useEffect 不是反应式的。它不跟踪事物。它只是比较渲染之间的依赖关系,如果有差异,它就会执行给定的回调。具有 useEffect harus memaparkan semula untuk melaksanakan fungsi ini.

    Apa yang boleh anda lakukan ialah menyampaikan panggilan balik daripada ibu bapa kepada anak supaya anak boleh memanggilnya apabila ia bertukar keadaan

    balas
    0
  • Batalbalas