Skip to content

Commit b9be27e

Browse files
bluemshustcc
andauthored
fix: Add null check in destroy() before disconnecting sensor (#21)
* fix: Add null check in destroy() before disconnecting sensor Fixes a TypeError that occurs when sensor.disconnect() is called on an already destroyed sensor during React StrictMode's double mount/unmount cycle. The destroy() function attempted to call sensor.disconnect() without checking if sensor was still defined, leading to: "TypeError: Cannot read properties of undefined (reading 'disconnect')" This commonly occurs in React 18+ StrictMode environments where components are intentionally mounted and unmounted twice to detect side effects, causing multiple destroy() calls on the same sensor. * Bump version from 1.0.2 to 1.0.3 --------- Co-authored-by: hustcc <[email protected]>
1 parent 7df9633 commit b9be27e

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "size-sensor",
3-
"version": "1.0.2",
3+
"version": "1.0.3",
44
"description": "DOM element size sensor which will callback when size changed.",
55
"main": "lib/index.js",
66
"types": "index.d.ts",

src/sensors/resizeObserver.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ export const createSensor = (element, whenDestroy) => {
5353
* destroy
5454
*/
5555
const destroy = () => {
56-
sensor.disconnect();
56+
if (sensor) {
57+
sensor.disconnect();
58+
}
5759

5860
listeners = [];
5961
sensor = undefined;

0 commit comments

Comments
 (0)