# react-native-best-practices > React Native and Expo best practices guide. Use this skill when: - Writing or reviewing React Native / Expo code - Debugging runtime errors (undefined is not an object, maximum update depth, etc.) - Fixing build failures (Gradle, CocoaPods, Metro bundler) - Working with React Navigation - Optimizing FlatList or fixing performance issues - Handling state management (Redux, Zustand, Context) - Working with native modules, permissions, camera, push notifications - Fixing Expo-specific issues (EAS Build, OTA updates, config plugins) - CSS properties not working (grid, animations, vh/vw units, pseudo-elements) - Styling differences between iOS and Android - Reviewing code for anti-patterns Triggers: react native error, expo error, build failed, flatlist slow, navigation error, state not updating, memory leak, permission denied, expo build, eas build, css not working, style not applied, grid layout, animation, shadow not showing - Author: jyggiz - Repository: jyggiz/react-native-starter - Version: 20260105030223 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/jyggiz/react-native-starter - Web: https://mule.run/skillshub/@@jyggiz/react-native-starter~react-native-best-practices:20260105030223 --- --- name: react-native-best-practices description: | React Native and Expo best practices guide. Use this skill when: - Writing or reviewing React Native / Expo code - Debugging runtime errors (undefined is not an object, maximum update depth, etc.) - Fixing build failures (Gradle, CocoaPods, Metro bundler) - Working with React Navigation - Optimizing FlatList or fixing performance issues - Handling state management (Redux, Zustand, Context) - Working with native modules, permissions, camera, push notifications - Fixing Expo-specific issues (EAS Build, OTA updates, config plugins) - CSS properties not working (grid, animations, vh/vw units, pseudo-elements) - Styling differences between iOS and Android - Reviewing code for anti-patterns Triggers: react native error, expo error, build failed, flatlist slow, navigation error, state not updating, memory leak, permission denied, expo build, eas build, css not working, style not applied, grid layout, animation, shadow not showing --- # React Native & Expo Best Practices ## Critical Rules (Always Apply) ### Package Management - **ALWAYS** use `npx expo install ` — never npm/yarn install directly - Run `npx expo-doctor` before commits to catch version mismatches ### Code Patterns ```javascript // ✅ Safe data access const name = user?.profile?.name ?? 'Default'; // ✅ Correct event handler