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?
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