React 助手
- 作者仓库星标 0
- 作者仓库 skills-registry
React Native Mobile Development
Guide for building mobile apps with React Native and Expo.
When to Use
- Setting up React Native/Expo projects
- Running dev servers or builds
- Creating mobile components
- Handling platform-specific code (iOS/Android)
- Configuring app.json or native modules
- Troubleshooting mobile-specific issues
Core Commands
# Development
npm start # Start Metro bundler
npm run ios # Run on iOS Simulator
npm run android # Run on Android Emulator
# Expo specific
npx expo start # Start with Expo CLI
npx expo install PKG # Install compatible packages
npx expo prebuild # Generate native code
Component Structure
// Mobile component template
import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
interface Props {
title: string;
onPress: () => void;
}
export function MyComponent({ title, onPress }: Props) {
return (
<TouchableOpacity onPress={onPress} style={styles.container}>
<Text style={styles.text}>{title}</Text>
</TouchableOpacity>
);
}
const styles = StyleSheet.create({
container: {
padding: 16,
backgroundColor: '#007AFF',
borderRadius: 8,
},
text: {
color: '#FFFFFF',
fontSize: 16,
fontWeight: '600',
},
});
Platform-Specific Code
import { Platform } from 'react-native';
// Conditional rendering
{Platform.OS === 'ios' && <IOSComponent />}
{Platform.OS === 'android' && <AndroidComponent />}
// Platform-specific values
const height = Platform.select({
ios: 44,
android: 56,
default: 50,
});
// Platform-specific styles
const styles = StyleSheet.create({
container: {
...Platform.select({
ios: { shadowColor: '#000', shadowOpacity: 0.3 },
android: { elevation: 4 },
}),
},
});
Best Practices
- Performance: Use
StyleSheet.create(), avoid inline styles, optimize images - Accessibility: Add
accessibilityLabelandaccessibilityRole - Responsive: Test on different screen sizes
- Navigation: Use React Navigation or Expo Router
- State: Keep component state minimal, use context/store for shared state
Common Patterns
Lists
import { FlatList } from 'react-native';
<FlatList
data={items}
keyExtractor={(item) => item.id}
renderItem={({ item }) => <ItemComponent item={item} />}
/>
Forms
import { TextInput } from 'react-native';
const [value, setValue] = useState('');
<TextInput
value={value}
onChangeText={setValue}
placeholder="Enter text"
style={styles.input}
/>
Loading States
import { ActivityIndicator } from 'react-native';
{loading ? <ActivityIndicator /> : <Content />}
Troubleshooting
- Metro won't start: Clear cache with
npx expo start --clear - Native module error: Run
npx expo prebuild --clean - Build fails: Check
app.jsonconfiguration - Simulator issues: Reset simulator or emulator
Resources
<!-- tomevault:4.0:skill_md:2026-05-22 -->Source: ComeOnOliver/skillshub — distributed by TomeVault.
- 流狐分类
- 工程开发
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @tomevault-io · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- macOS · Linux · Windows
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 When to Use
Setting up React Native/Expo projects Running dev servers or builds Creating mobile components
Core Commands
Core Commands
Component Structure
Component Structure
Platform-Specific Code
Platform-Specific Code
Best Practices
Performance: Use StyleSheet.create(), avoid inline styles, optimize images Accessibility: Add accessibilityLabel and accessibilityRole Responsive: Test on different screen sizes
Common Patterns
Common Patterns
# React Native Mobile Development
Guide for building mobile apps with React Native and Expo.
## When to Use
- Setting up React Native/Expo projects
- Running dev servers or builds
- Creating mobile components
- Handling platform-specific code (iOS/Android)
- Configuring app.json or native modules
- Troubleshooting mobile-specific issues
## Core Commands
```bash
# Development
npm start # Start Metro bundler
npm run ios # Run on iOS Simulator
npm run android # Run on Android Emulator
# Expo specific
npx expo start # Start with Expo CLI
npx expo install PKG # Install compatible packages
npx expo prebuild # Generate native code
```
## Component Structure
```typescript
// Mobile component template
import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
interface Props {
title: string;
onPress: () => void;
}
export function MyComponent({ title, onPress }: Props) {
return (
<TouchableOpacity onPress={onPress} style={styles.container}>
<Text style={styles.text}>{title}</Text>
</TouchableOpacity>
);
}
const styles = StyleSheet.create({
container: {
padding: 16,
backgroundColor: '#007AFF',
borderRadius: 8,
},
text: {
color: '#FFFFFF',
fontSize: 16,
fontWeight: '600',
},
});
```
## Platform-Specific Code
```typescript
import { Platform } from 'react-native';
// Conditional rendering
{Platform.OS === 'ios' && <IOSComponent />}
{Platform.OS === 'android' && <AndroidComponent />}
// Platform-specific values
const height = Platform.select({
ios: 44,
android: 56,
default: 50,
});
// Platform-specific styles
const styles = StyleSheet.create({
container: {
...Platform.select({
ios: { shadowColor: '#000', shadowOpacity: 0.3 },
… 证据边界与执行链路
作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> When to Use → Core Commands → Component Structure → Platform-Specific Code → Best Practices → Common Patterns
要点 -> Performance · Accessibility · Responsive · Navigation · State · Metro won't start · Native module error · Build fails
文件/命令 -> StyleSheet.create() · accessibilityLabel · accessibilityRole · npx expo start --clear · npx expo prebuild --clean · app.json
内容 SHA-256 -> d2f39844bfa0
原文结构
适用与边界
原文中的明确线索
StyleSheet.create()、accessibilityLabel、accessibilityRole、npx expo start --clear、npx expo prebuild --clean、app.json