reactjs - 如何在同一个 const 函数中使用道具和导航路线(反应原生)?
问题描述
我是反应原生的新手。我正在尝试在 const 函数中使用道具和导航。我不知道该怎么做。
render() {
return (
<View style={styles.container}>
{this.state.signedIn ? (
<LoggedInPage name={this.state.name} photoUrl={this.state.photoUrl} />
) : (
<LoginPage signIn={this.signIn} />
)}
<TouchableOpacity
onPress={() => {this.props.navigation.navigate('About You')}}
style={styles.submitButton4}>
<Text style={styles.buttonText2}> Next </Text>
</TouchableOpacity>
</View>
);
} const LoggedInPage = props => { return ( Welcome {props.name} <Image style={styles.image} source={{ uri: props.photoUrl }} /> 更改照片 <TouchableOpacity onPress={() => { this.props.navigation.navigate('registration')}} style={styles.submitButton4}> Next ) }
解决方案
如果您的 LoggedInPage 是 Navigator 中定义的屏幕之一,则导航道具会自动传递到您的组件中。然后你可以像这样使用导航props.navigation.navigate
您所需要的只是从您的父母那里传递导航道具。
return (
<View style={styles.container}>
{this.state.signedIn ? (
<LoggedInPage name={this.state.name} photoUrl={this.state.photoUrl} navigation={this.props.navigation} />
) : (
<LoginPage signIn={this.signIn} navigation={this.props.navigation} />
)}
<TouchableOpacity
onPress={() => {this.props.navigation.navigate('About You')}}
style={styles.submitButton4}>
<Text style={styles.buttonText2}> Next </Text>
</TouchableOpacity>
</View>
);
那么你可以使用它的名称方式:
const LoggedInPage = props => {
return (
<Text style={styles.text1}>Welcome {props.name}</Text>
<Image style={styles.image} source={{ uri: props.photoUrl }} />
<TouchableOpacity
style={styles.submitButton1}>
<Text style={styles.buttonText3}> Change photo </Text>
</TouchableOpacity>
<TouchableOpacity
onPress={() => {props.navigation.navigate('registration')}}
style={styles.submitButton4}>
<Text style={styles.buttonText2}> Next </Text>
</TouchableOpacity>
</View>
) }
推荐阅读
- git - 撤消分支中的所有新提交
- robotframework - 机器人固件:内置模块:设置套件变量:如何在新范围内覆盖新创建的变量?
- android - 是否可以从 base64String API 响应调用生成 APK 文件?
- powershell - Powershell Classes 构造函数调用了两次 - 使用模块和 Import-Module
- angular - Angular 新手 - 编写日志文件
- python - 滚动和然后使用此滚动和获得随机整数
- aws-lambda - AWS Lambda Endpoint 请求超时 Python 中的雪花连接需要很长时间才能连接
- python - Chrome 中的 Selenium 长页面加载
- outlook - Microsoft Teams App - 如何在 Outlook 日历中创建事件?
- c# - 为什么测试方法在 azure devops 构建管道、dotnet 测试任务中未完成