TouchableOpacity无法在Expo上进行本地反应

时间:2020-05-07 00:56:08

标签: javascript android ios reactjs react-native

我正在这个登录页面上工作,我必须在此文本上使用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");
        }}
      />
    </>
  );

1 个答案:

答案 0 :(得分:1)

routeName不是名称。您说您的想法是制作一个具有相同功能的简单按钮,并且它可以正常工作。 之所以起作用,是因为您将routename赋予为“ Singin”

所以您只需替换

<TouchableOpacity onPress={() => navigation.navigate(routeName)}>

使用

<TouchableOpacity onPress={() => navigation.navigate("Singin")}>

应该工作。