Saya telah bermain-main dengan sistem hook baru di React 16.7-alpha dan terjebak dalam loop tak terbatas dalam useEffect ketika keadaan yang saya tangani adalah objek atau array.
Pertama, saya menggunakan useState dan memulainya dengan objek kosong seperti ini:
const [obj, setObj] = useState({});
Kemudian, dalam useEffect, saya menggunakan setObj untuk menyetelnya ke objek kosong lagi. Sebagai argumen kedua saya meneruskan [obj], berharap itu tidak akan diperbarui jika konten objek tidak berubah. Tapi itu terus diperbarui. Saya rasa karena apa pun isinya, objek ini selalu berbeda sehingga membuat React berpikir itu terus berubah?
useEffect(() => {
setIngredients({});
}, [ingredients]);
Hal yang sama berlaku dengan array, tetapi sebagai primitif, ia tidak akan terjebak dalam loop, seperti yang diharapkan.
Dengan menggunakan kait baru ini, bagaimana saya harus menangani objek dan larik saat memeriksa cuaca, konten telah berubah atau tidak?