React 16.7-alphaの新しいフックシステムで遊んでいて、処理している状態がオブジェクトまたは配列の場合、useEffectで無限ループに陥ります。
まず、useStateを使用して、次のような空のオブジェクトで開始します。
const [obj, setObj] = useState({});
次に、useEffectで、setObjを使用して空のオブジェクトに再度設定します。2番目の引数として、オブジェクトのコンテンツが変更されていない場合に更新されないことを期待して、[obj]を渡します。しかし、それは更新し続けます。内容に関係なく、これらは常に異なるオブジェクトであるため、Reactは変化し続けると考えていますか?
useEffect(() => {
setIngredients({});
}, [ingredients]);
配列についても同じことが言えますが、プリミティブとしては、予想どおりループに陥ることはありません。
これらの新しいフックを使用して、コンテンツが変更されたかどうかを天気をチェックするときに、オブジェクトと配列をどのように処理する必要がありますか?