-
-
Notifications
You must be signed in to change notification settings - Fork 203
Description
Related plugins
Describe the bug
Hi again! Some libraries trigger TypeError: Cannot read properties of null (reading 'useRef') for me when used inside client components, f.e. keen-slider, which is working fine with Parcel.
Upon requesting the page I get the error listed below under logs.
Reproduction
https://github.com/alexdo/rsc-nested-imports-reproducer/tree/main
Steps to reproduce
I tried to make a minimal reproducer in both parcel and vite. The vite reproducer is based on the starter example out of plugin-rsc/examples.
In both scenarios, there's a Server Component embedding
- a Client Component using react-intersection-observer and
- another Client Component using keen-slider
With vite-rsc, the Client Component using a hook out of react-intersection-observer is working fine but the Client Component using a hook from keen-slider is throwing the error written above. In parcel, both are working fine.
System Info
System:
OS: macOS 15.5
CPU: (10) arm64 Apple M1 Max
Memory: 373.03 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 22.13.1 - ~/.nvm/versions/node/v22.13.1/bin/node
npm: 11.1.0 - ~/.nvm/versions/node/v22.13.1/bin/npm
Browsers:
Chrome: 138.0.7204.169
Safari: 18.5
Safari Technology Preview: 26.0
npmPackages:
@vitejs/plugin-react: latest => 4.7.0
@vitejs/plugin-rsc: latest => 0.4.17
vite: ^7.0.6 => 7.0.6Used Package Manager
npm
Logs
Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.
TypeError: Cannot read properties of null (reading 'useRef')
at process.env.NODE_ENV.exports.useRef (~/demo/node_modules/react/cjs/react.development.js:1219:33)
at exports.useKeenSlider (~/demo/node_modules/keen-slider/react.js:1:14847)
at NestedClientSliderComponent (~/demo/src/nestedClientSliderComponent.tsx:8:23)
at Object.react_stack_bottom_frame (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:16041:18)
at renderWithHooks (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:12947:24)
at renderElement (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:13207:25)
at retryNode (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:13815:43)
at renderNodeDestructive (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:13775:270)
at renderNode (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:14115:20)
at renderChildrenArray (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:14011:11)
TypeError: Cannot read properties of null (reading 'useRef')
at process.env.NODE_ENV.exports.useRef (~/demo/node_modules/react/cjs/react.development.js:1219:33)
at exports.useKeenSlider (~/demo/node_modules/keen-slider/react.js:1:14847)
at NestedClientSliderComponent (~/demo/src/nestedClientSliderComponent.tsx:8:23)
at Object.react_stack_bottom_frame (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:16041:18)
at renderWithHooks (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:12947:24)
at renderElement (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:13207:25)
at retryNode (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:13815:43)
at renderNodeDestructive (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:13775:270)
at renderNode (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:14115:20)
at renderChildrenArray (~/demo/node_modules/.vite/deps_ssr/react-dom_server__edge.js:14011:11)
Validations
- Follow our Code of Conduct
- Read the Contributing Guidelines.
- Read the docs.
- Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- Make sure this is a Vite issue and not a framework-specific issue.
- Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
- The provided reproduction is a minimal reproducible example of the bug.