Skip to content

Commit e489402

Browse files
authored
Warn when a callback ref returns a function (#23145)
1 parent 05a55a4 commit e489402

13 files changed

+4
-30
lines changed

packages/react-dom/src/__tests__/refs-test.js

-1
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,6 @@ describe('ref swapping', () => {
352352
);
353353
});
354354

355-
// @gate !__DEV__ || warnAboutCallbackRefReturningFunction
356355
it('should warn about callback refs returning a function', () => {
357356
const container = document.createElement('div');
358357
expect(() => {

packages/react-reconciler/src/ReactFiberCommitWork.new.js

+2-9
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import {
3939
deletedTreeCleanUpLevel,
4040
enableSuspenseLayoutEffectSemantics,
4141
enableUpdaterTracking,
42-
warnAboutCallbackRefReturningFunction,
4342
enableCache,
4443
} from 'shared/ReactFeatureFlags';
4544
import {
@@ -286,10 +285,7 @@ function safelyDetachRef(current: Fiber, nearestMountedAncestor: Fiber | null) {
286285
captureCommitPhaseError(current, nearestMountedAncestor, error);
287286
}
288287
if (__DEV__) {
289-
if (
290-
warnAboutCallbackRefReturningFunction &&
291-
typeof retVal === 'function'
292-
) {
288+
if (typeof retVal === 'function') {
293289
console.error(
294290
'Unexpected return value from a callback ref in %s. ' +
295291
'A callback ref should not return a function.',
@@ -1151,10 +1147,7 @@ function commitAttachRef(finishedWork: Fiber) {
11511147
retVal = ref(instanceToUse);
11521148
}
11531149
if (__DEV__) {
1154-
if (
1155-
warnAboutCallbackRefReturningFunction &&
1156-
typeof retVal === 'function'
1157-
) {
1150+
if (typeof retVal === 'function') {
11581151
console.error(
11591152
'Unexpected return value from a callback ref in %s. ' +
11601153
'A callback ref should not return a function.',

packages/react-reconciler/src/ReactFiberCommitWork.old.js

+2-9
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import {
3939
deletedTreeCleanUpLevel,
4040
enableSuspenseLayoutEffectSemantics,
4141
enableUpdaterTracking,
42-
warnAboutCallbackRefReturningFunction,
4342
enableCache,
4443
} from 'shared/ReactFeatureFlags';
4544
import {
@@ -286,10 +285,7 @@ function safelyDetachRef(current: Fiber, nearestMountedAncestor: Fiber | null) {
286285
captureCommitPhaseError(current, nearestMountedAncestor, error);
287286
}
288287
if (__DEV__) {
289-
if (
290-
warnAboutCallbackRefReturningFunction &&
291-
typeof retVal === 'function'
292-
) {
288+
if (typeof retVal === 'function') {
293289
console.error(
294290
'Unexpected return value from a callback ref in %s. ' +
295291
'A callback ref should not return a function.',
@@ -1151,10 +1147,7 @@ function commitAttachRef(finishedWork: Fiber) {
11511147
retVal = ref(instanceToUse);
11521148
}
11531149
if (__DEV__) {
1154-
if (
1155-
warnAboutCallbackRefReturningFunction &&
1156-
typeof retVal === 'function'
1157-
) {
1150+
if (typeof retVal === 'function') {
11581151
console.error(
11591152
'Unexpected return value from a callback ref in %s. ' +
11601153
'A callback ref should not return a function.',

packages/shared/ReactFeatureFlags.js

-2
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,6 @@ export const deferRenderPhaseUpdateToNextBatch = false;
178178

179179
export const enableUseRefAccessWarning = false;
180180

181-
export const warnAboutCallbackRefReturningFunction = false;
182-
183181
export const disableSchedulerTimeoutInWorkLoop = false;
184182

185183
export const enableLazyContextPropagation = false;

packages/shared/forks/ReactFeatureFlags.native-fb.js

-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ export const deferRenderPhaseUpdateToNextBatch = false;
6666
export const enableStrictEffects = __DEV__;
6767
export const createRootStrictEffectsByDefault = false;
6868
export const enableUseRefAccessWarning = false;
69-
export const warnAboutCallbackRefReturningFunction = false;
7069

7170
export const disableSchedulerTimeoutInWorkLoop = false;
7271
export const enableLazyContextPropagation = false;

packages/shared/forks/ReactFeatureFlags.native-oss.js

-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ export const deferRenderPhaseUpdateToNextBatch = false;
5757
export const enableStrictEffects = false;
5858
export const createRootStrictEffectsByDefault = false;
5959
export const enableUseRefAccessWarning = false;
60-
export const warnAboutCallbackRefReturningFunction = false;
6160

6261
export const disableSchedulerTimeoutInWorkLoop = false;
6362
export const enableLazyContextPropagation = false;

packages/shared/forks/ReactFeatureFlags.test-renderer.js

-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ export const deferRenderPhaseUpdateToNextBatch = false;
5757
export const enableStrictEffects = false;
5858
export const createRootStrictEffectsByDefault = false;
5959
export const enableUseRefAccessWarning = false;
60-
export const warnAboutCallbackRefReturningFunction = false;
6160

6261
export const disableSchedulerTimeoutInWorkLoop = false;
6362
export const enableLazyContextPropagation = false;

packages/shared/forks/ReactFeatureFlags.test-renderer.native.js

-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ export const enableClientRenderFallbackOnHydrationMismatch = true;
5656
export const enableStrictEffects = false;
5757
export const createRootStrictEffectsByDefault = false;
5858
export const enableUseRefAccessWarning = false;
59-
export const warnAboutCallbackRefReturningFunction = false;
6059

6160
export const disableSchedulerTimeoutInWorkLoop = false;
6261
export const enableLazyContextPropagation = false;

packages/shared/forks/ReactFeatureFlags.test-renderer.www.js

-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ export const deferRenderPhaseUpdateToNextBatch = false;
5757
export const enableStrictEffects = true;
5858
export const createRootStrictEffectsByDefault = false;
5959
export const enableUseRefAccessWarning = false;
60-
export const warnAboutCallbackRefReturningFunction = false;
6160

6261
export const disableSchedulerTimeoutInWorkLoop = false;
6362
export const enableLazyContextPropagation = false;

packages/shared/forks/ReactFeatureFlags.testing.js

-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ export const deferRenderPhaseUpdateToNextBatch = false;
5757
export const enableStrictEffects = false;
5858
export const createRootStrictEffectsByDefault = false;
5959
export const enableUseRefAccessWarning = false;
60-
export const warnAboutCallbackRefReturningFunction = false;
6160

6261
export const disableSchedulerTimeoutInWorkLoop = false;
6362
export const enableLazyContextPropagation = false;

packages/shared/forks/ReactFeatureFlags.testing.www.js

-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ export const deferRenderPhaseUpdateToNextBatch = false;
5757
export const enableStrictEffects = false;
5858
export const createRootStrictEffectsByDefault = false;
5959
export const enableUseRefAccessWarning = false;
60-
export const warnAboutCallbackRefReturningFunction = false;
6160

6261
export const disableSchedulerTimeoutInWorkLoop = false;
6362
export const enableLazyContextPropagation = false;

packages/shared/forks/ReactFeatureFlags.www-dynamic.js

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export const enableFilterEmptyStringAttributesDOM = __VARIANT__;
1919
export const enableLegacyFBSupport = __VARIANT__;
2020
export const skipUnmountedBoundaries = __VARIANT__;
2121
export const enableUseRefAccessWarning = __VARIANT__;
22-
export const warnAboutCallbackRefReturningFunction = __VARIANT__;
2322
export const deletedTreeCleanUpLevel = __VARIANT__ ? 3 : 1;
2423
export const enableProfilerNestedUpdateScheduledHook = __VARIANT__;
2524
export const disableSchedulerTimeoutInWorkLoop = __VARIANT__;

packages/shared/forks/ReactFeatureFlags.www.js

-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ export const warnAboutDefaultPropsOnFunctionComponents = false;
6767
export const enableGetInspectorDataForInstanceInProduction = false;
6868
export const enableSuspenseServerRenderer = true;
6969
export const enableSelectiveHydration = true;
70-
export const warnAboutCallbackRefReturningFunction = true;
7170

7271
export const enableLazyElements = true;
7372
export const enableCache = true;

0 commit comments

Comments
 (0)