diff --git a/packages/react-dom/src/__tests__/ReactDOMForm-test.js b/packages/react-dom/src/__tests__/ReactDOMForm-test.js
index 180d913b6e825..ea97b293ff707 100644
--- a/packages/react-dom/src/__tests__/ReactDOMForm-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMForm-test.js
@@ -1296,7 +1296,6 @@ describe('ReactDOMForm', () => {
expect(container.textContent).toBe('B');
});
-
// @gate enableFormActions
// @gate enableAsyncActions
test('useFormState works in StrictMode', async () => {
@@ -1326,7 +1325,13 @@ describe('ReactDOMForm', () => {
}
const root = ReactDOMClient.createRoot(container);
- await act(() => root.render());
+ await act(() =>
+ root.render(
+
+
+ ,
+ ),
+ );
assertLog(['0']);
expect(container.textContent).toBe('0');
@@ -1334,7 +1339,6 @@ describe('ReactDOMForm', () => {
assertLog(['Async action started [1]', 'Pending 0']);
expect(container.textContent).toBe('Pending 0');
-
await act(() => resolveText('Wait [1]'));
assertLog(['1']);
expect(container.textContent).toBe('1');
diff --git a/packages/react-reconciler/src/ReactFiberHooks.js b/packages/react-reconciler/src/ReactFiberHooks.js
index 75acffc1b9a11..10c1cb9a9b465 100644
--- a/packages/react-reconciler/src/ReactFiberHooks.js
+++ b/packages/react-reconciler/src/ReactFiberHooks.js
@@ -2259,6 +2259,9 @@ function rerenderFormState(
);
}
+ // For mount, pending is always false.
+ const [isPending] = updateState(false);
+
// This is a mount. No updates to process.
const state: Awaited = stateHook.memoizedState;
@@ -2269,8 +2272,7 @@ function rerenderFormState(
// This may have changed during the rerender.
actionQueueHook.memoizedState = action;
- // For mount, pending is always false.
- return [state, dispatch, false];
+ return [state, dispatch, isPending];
}
function pushEffect(