Installation Issues
Cannot find module '@ncdai/react-wheel-picker'
Cannot find module '@ncdai/react-wheel-picker'
-
Verify the package is installed:
-
If not installed, install it:
-
Clear your build cache:
- Restart your development server
Peer dependency warnings for React
Peer dependency warnings for React
CSS and Styling Issues
Styles not applying - picker looks broken
Styles not applying - picker looks broken
-
Ensure you’ve imported the CSS file:
-
Import it in your app’s entry point:
- Next.js:
app/layout.tsxorpages/_app.tsx - Vite:
src/main.tsx - Create React App:
src/index.tsx
- Next.js:
-
Verify the import path is correct:
- Check your bundler configuration supports CSS imports
CSS import error in Next.js
CSS import error in Next.js
_app file:App Router (Next.js 13+):Fade effect not visible at edges
Fade effect not visible at edges
mask-image. Some older browsers don’t support this property.-
Check browser compatibility:
- Chrome/Edge: 120+
- Firefox: 53+
- Safari: 15.4+
- For older browsers, use a gradient overlay:
Custom styles not overriding defaults
Custom styles not overriding defaults
- Use
classNamesprop instead of inline styles:
- Increase CSS specificity:
- Use
!importantas a last resort:
TypeScript Issues
Type error: Property 'textValue' does not exist
Type error: Property 'textValue' does not exist
textValue on older versions.Solution:The textValue property was added in v1.1.0. Upgrade to the latest version:textValue if you can’t upgrade:Type error: Property 'disabled' does not exist
Type error: Property 'disabled' does not exist
disabled property.Solution:The disabled property was added in v1.2.0. Upgrade:Generic type errors with option values
Generic type errors with option values
Cannot find type definitions
Cannot find type definitions
-
Verify the package is installed:
-
Check your
tsconfig.jsonincludesnode_modules: -
Restart your TypeScript server in VS Code:
- Press
Cmd/Ctrl + Shift + P - Select “TypeScript: Restart TS Server”
- Press
Behavior Issues
Picker not scrolling smoothly on mobile
Picker not scrolling smoothly on mobile
- Ensure you’re not preventing default touch events elsewhere:
- Adjust
dragSensitivity:
- Check for conflicting touch handlers:
- Remove
touch-action: nonefrom parent elements - Ensure no other libraries are capturing touch events
- Remove
Infinite scroll not working
Infinite scroll not working
infinite={true} doesn’t create an infinite loop.Solution:- Verify you’re passing the prop correctly:
-
Ensure you have enough options:
- Minimum 3-4 options recommended
- With fewer options, the effect may not be noticeable
-
Check
visibleCountprop:- Must be a multiple of 4
- Default is 20
Selected value not updating
Selected value not updating
- Use controlled mode correctly:
- Or use uncontrolled mode:
- Ensure the value exists in options:
Keyboard navigation not working
Keyboard navigation not working
Type-ahead search not finding options
Type-ahead search not finding options
- For
ReactNodelabels, addtextValue:
- Ensure the picker is focused
-
Type quickly - there’s a 500ms timeout between characters:
- “n” → “e” → “x” finds “Next.js”
- “n” → (wait 500ms) → “e” searches for “e”, not “ne”
- Only enabled options are searchable:
Disabled options are still selectable
Disabled options are still selectable
- Upgrade to v1.2.0 or later:
- Ensure you’re using the
disabledproperty correctly:
- Verify your CSS doesn’t override pointer events:
Performance Issues
Picker feels laggy with many options
Picker feels laggy with many options
- Reduce
visibleCountfor better performance:
- Use
infinite={false}if you don’t need infinite scrolling:
- Simplify option labels:
- Memoize your options:
Memory leak warnings in React DevTools
Memory leak warnings in React DevTools
- Ensure you’re on v1.0.17 or later (includes cleanup fixes):
- Properly clean up event listeners in parent components:
- Avoid creating options inside render:
Browser Compatibility
Not working in Safari
Not working in Safari
- Check Safari version - requires Safari 15.4+ for full support
- Ensure webkit prefixes are added (postcss/autoprefixer handles this):
- Test in Safari’s responsive design mode
-
Check for
touch-actionconflicts:
3D transform issues in older browsers
3D transform issues in older browsers
- Chrome/Edge: 36+
- Firefox: 16+
- Safari: 9+
- iOS Safari: 9+
- Android Chrome: 36+
- Show a fallback
<select>element - Use a feature detection library
- Display a “browser not supported” message
Framework-Specific Issues
Next.js: Hydration mismatch error
Next.js: Hydration mismatch error
- Use dynamic import with SSR disabled:
- Or use the
"use client"directive (App Router):
- Ensure initial value matches between server and client:
Remix: Document is not defined error
Remix: Document is not defined error
- Use
ClientOnlycomponent:
- Or lazy load the component:
Vite: CSS import order issues
Vite: CSS import order issues
- Import the library CSS before your custom CSS:
- Use CSS layers for better control:
Multiple Picker Issues
Multiple pickers not aligned correctly
Multiple pickers not aligned correctly
- Ensure all pickers have the same
optionItemHeight:
- Use consistent
visibleCount:
- Apply equal flex widths if needed:
Arrow keys not switching between pickers
Arrow keys not switching between pickers
- Ensure all pickers are wrapped in
WheelPickerWrapper:
- Verify keyboard navigation is enabled (v1.1.0+):
- Make sure pickers aren’t in separate wrapper components
Still Having Issues?
If you’re still experiencing problems:- Check the GitHub Issues for similar problems
- Review the Getting Started guide for setup instructions
- See the Migration Guide if upgrading from an older version
- Open a new issue with:
- Your React version
- Your package version
- A minimal reproduction
- Browser and OS information