Closed2

refコールバックでmount・unmount判定できるか

ピン留めされたアイテム
ぬまさんぬまさん

StrictModeによってuseEffectでは開発中だと2回実行されてしまい、トースト表示では無駄にトーストされてしまう。
https://ja.react.dev/reference/react/StrictMode
基本的には「開発中だから」という理由で放置するのが公式の見解だが、バグのようにどうしても見えるのでなんとかしたい。
https://ja.react.dev/learn/synchronizing-with-effects#sending-analytics

ぬまさんぬまさん

refコールバックはDOMをmount・unmountしたという意味になるためこっちで代用できると思い、試してみたところ動いてそうだった。
https://stackblitz.com/edit/vitejs-vite-f2nan8?file=src%2Fhooks%2FuseDomLifecycle.ts

しかしReact19からはrefコールバックもクリーンアップを設定できるようになり、useEffectと同じように2回実行される雰囲気であるため、根本的な解決にはならなそうだった。。
https://ja.react.dev/reference/react-dom/components/common#ref-callback

このスクラップは2024/08/24にクローズされました