The primary example code relies on Suspense, meaning that loading behavior will be handled by a parent/ancestor <Suspense /> component and not in the component itself. I think they default to showing this pattern since it is the “future” of React. There is an alternate version of the API where you can get a loading boolean for imperative control.
Yes, it doesn't really distinguish between loading vs null values in any of the examples.
My guess is its going to be something like `undefined` means loading and `null` means null.
There’s a different hook you can use that returns an error state.