Bump useEffectEvent to Canary (#34610)
Bumps `useEffectEvent` from `@experimental` to `@canary`. Removes the `experimental_` prefix from the export. ## TODO - [ ] Update useEffectEvent reference page and Canary badging in docs: https://github.com/reactjs/react.dev/pull/8025
Jack Pope committed
Sep 26, 2025 at 11:51 UTC
8bb7241f4c773376893701bfe8b8ff03687342a0
10 files changed
+14
-11
packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js
+4
-4
@@ -6514,7 +6514,7 @@ describe('ReactDOMFizzServer', () => {
6514
const ref = React.createRef();
6515
function App() {
6516
const [count, setCount] = React.useState(0);
6517
- const onClick = React.experimental_useEffectEvent(() => {
6517
+ const onClick = React.useEffectEvent(() => {
6518
setCount(c => c + 1);
6519
});
6520
return (
@@ -6544,7 +6544,7 @@ describe('ReactDOMFizzServer', () => {
6544
it('throws if useEffectEvent is called during a server render', async () => {
6545
const logs = [];
6546
function App() {
6547
- const onRender = React.experimental_useEffectEvent(() => {
6547
+ const onRender = React.useEffectEvent(() => {
6548
logs.push('rendered');
6549
});
6550
onRender();
@@ -6575,8 +6575,8 @@ describe('ReactDOMFizzServer', () => {
6575
// @gate enableUseEffectEventHook
6576
it('does not guarantee useEffectEvent return values during server rendering are distinct', async () => {
6577
function App() {
6578
- const onClick1 = React.experimental_useEffectEvent(() => {});
6579
- const onClick2 = React.experimental_useEffectEvent(() => {});
6578
+ const onClick1 = React.useEffectEvent(() => {});
6579
+ const onClick2 = React.useEffectEvent(() => {});
6580
if (onClick1 === onClick2) {
6581
return <div />;
6582
} else {
packages/react-reconciler/src/__tests__/useEffectEvent-test.js
+1
-1
@@ -37,7 +37,7 @@ describe('useEffectEvent', () => {
37
createContext = React.createContext;
38
useContext = React.useContext;
39
useState = React.useState;
40
- useEffectEvent = React.experimental_useEffectEvent;
40
+ useEffectEvent = React.useEffectEvent;
41
useEffect = React.useEffect;
42
useLayoutEffect = React.useLayoutEffect;
43
useMemo = React.useMemo;
packages/react/index.development.js
+1
-1
@@ -56,7 +56,7 @@ export {
56
useDebugValue,
57
useDeferredValue,
58
useEffect,
59
- experimental_useEffectEvent,
59
+ useEffectEvent,
60
useImperativeHandle,
61
useInsertionEffect,
62
useLayoutEffect,
packages/react/index.experimental.development.js
+1
-1
@@ -43,7 +43,7 @@ export {
43
useDebugValue,
44
useDeferredValue,
45
useEffect,
46
- experimental_useEffectEvent,
46
+ useEffectEvent,
47
useImperativeHandle,
48
useInsertionEffect,
49
useLayoutEffect,
packages/react/index.experimental.js
+1
-1
@@ -44,7 +44,7 @@ export {
44
useDebugValue,
45
useDeferredValue,
46
useEffect,
47
- experimental_useEffectEvent,
47
+ useEffectEvent,
48
useImperativeHandle,
49
useInsertionEffect,
50
useLayoutEffect,
packages/react/index.fb.js
+2
-1
@@ -21,7 +21,8 @@ export {
21
createContext,
22
createElement,
23
createRef,
24
- experimental_useEffectEvent,
24
+ useEffectEvent as experimental_useEffectEvent,
25
+ useEffectEvent,
26
forwardRef,
27
Fragment,
28
isValidElement,
packages/react/index.js
+1
-1
@@ -58,7 +58,7 @@ export {
58
useDebugValue,
59
useDeferredValue,
60
useEffect,
61
- experimental_useEffectEvent,
61
+ useEffectEvent,
62
useImperativeHandle,
63
useInsertionEffect,
64
useLayoutEffect,
packages/react/index.stable.development.js
+1
@@ -37,6 +37,7 @@ export {
37
useDebugValue,
38
useDeferredValue,
39
useEffect,
40
+ useEffectEvent,
41
useImperativeHandle,
42
useInsertionEffect,
43
useLayoutEffect,
packages/react/index.stable.js
+1
@@ -37,6 +37,7 @@ export {
37
useDebugValue,
38
useDeferredValue,
39
useEffect,
40
+ useEffectEvent,
41
useImperativeHandle,
42
useInsertionEffect,
43
useLayoutEffect,
packages/react/src/ReactClient.js
+1
-1
@@ -88,7 +88,7 @@ export {
88
useCallback,
89
useContext,
90
useEffect,
91
- useEffectEvent as experimental_useEffectEvent,
91
+ useEffectEvent,
92
useImperativeHandle,
93
useDebugValue,
94
useInsertionEffect,