facebook / react

The library for web and native user interfaces.
https://react.dev
MIT License
225.07k stars 45.89k forks source link

[DevTools Bug]: Null destructuring error inspecting a component with `useFormStatus` #29788

Open markerikson opened 1 month ago

markerikson commented 1 month ago

Website or app

https://github.com/markerikson/react-19-rdt-useformstatus-error

Repro steps

  1. Clone https://github.com/markerikson/react-19-rdt-useformstatus-error
  2. Install and run with yarn && yarn dev
  3. Browse to http://localhost:5173/useformstatus-example
  4. Open up the React DevTools Extension and inspect the <SubmitButton> component
  5. Observe that the inspection fails with Cannot destructure property 'pending' of 'useFormStatus(...)' as it is null.

image

/cc @hoxyq @eps1lon

FWIW I ran across this while working on updating Replay.io's own support for React 19 by merging down all the last year's worth of changes to our long-running RDT fork:

and then I was inspecting this <SubmitButton> component in a Replay recording of the example app, and observed that I see this error when inspecting it in the recording:

I do note that in the getPrimitiveStackCache() function in react-debug-tools, we don't try to warm up Dispatcher.useFormStatus(). Tried adding that myself and rebuilding our RDT fork bundle, but it didn't seem to fix the behavior, so that may not be relevant.

How often does this bug happen?

Every time

DevTools package (automated)

No response

DevTools version (automated)

No response

Error message (automated)

No response

Error call stack (automated)

No response

Error component stack (automated)

No response

GitHub query string (automated)

No response

eps1lon commented 1 month ago

We'll look into this for 19.1