我正在这个登录页面上工作,我必须在此文本上使用TouchableOpacity“已经有一个帐户?登录!”送我到singin屏幕,由于某种原因它无法正常工作,我以为我的代码有错误,经过数小时的调试,我想到了制作一个具有相同功能的简单按钮的功能,该功能对想知道博览会上的TouchableOpacity出了什么问题,或者我错过了某种逻辑错误。
这是我使用的代码:
在我的注册屏幕上:
return (
<View style={styles.container}>
<NavigationEvents onWillBlur={clearErrorMessage} />
<AuthForm
headerText="Sign Up for Tracker"
errorMessage={state.errorMessage}
submitButtonText="Sign Up"
onSubmit={signup}
/>
<NavLink
routeName="Signin"
text="Already have an account? Sign in instead!"
/>
</View>
);
来自Navlink组件:
return (
<>
<TouchableOpacity onPress={() => navigation.navigate(routeName)}>
<Spacer>
<Text style={styles.link}>{text}</Text>
</Spacer>
</TouchableOpacity>
<Button
title="go to sing in"
onPress={() => {
navigation.navigate("Singin");
}}
/>
</>
);
答案 0 :(得分:1)
此routeName
不是名称。您说您的想法是制作一个具有相同功能的简单按钮,并且它可以正常工作。
之所以起作用,是因为您将routename
赋予为“ Singin”
所以您只需替换
<TouchableOpacity onPress={() => navigation.navigate(routeName)}>
使用
<TouchableOpacity onPress={() => navigation.navigate("Singin")}>
应该工作。