-
Notifications
You must be signed in to change notification settings - Fork 42
Description
Question: What is the plan for the future of the library, regarding compatibility with React 18 and React 19?
Our team is trying to figure out if a PR we're submitting will be usable from our project, and how soon (in broad strokes).
Our project cannot be upgraded to React 19 and needs to stay on React 18. We are tied to a specific version of react-native, which stops us from upgrading to React 19.
I know people are asking for react-tv-space-navigation to be compatible with React 19, and I know release 6.0.0-beta1 is doing that.
I created a react-tv-space-navigation PR for an unrelated issue, based on main. When I tried to build and use it locally from our project (with React 18), I got this error:
Uncaught Error: Objects are not valid as a React child (found: object with keys {$$typeof, type, key, ref, props}). If you meant to render a collection of children, use an array instead.
...
The above error occurred in the <SpatialNavigationRoot> component.
If basing the PR a few commits down from the latest main, on the commit corresponding to release 5.2.0, it builds and compiles correctly.
I see there is a commit on main that upgrades React and React DOM to version 19. That's probably the cause of the error.
Using release 6.0.0-beta1 from our project also causes the error.
Also tested this project: https://github.com/pierpo/vite-react-tv-space-nav-repro, modified to use React 18 with release 6.0.0-beta1, and the error happens there as well.
Ideally, there will be a future release that is compatible with both React 18 and React 19.
Will version 6.0.0 (non-beta) be released soon? Will it be compatible with React 18?
It's also possible, and other libraries are doing this, to have parallel release streams. So for example when a feature is ready, it will be released as 5.4.0 (for React 18) and 6.4.0 (for React 19). Is this an option, if a single release stream is not possible?