【问题标题】:TouchableOpacity not working on expo for react nativeTouchableOpacity 不适用于本机反应的博览会
【发布时间】:2020-05-07 00:56:08
【问题描述】:

我正在处理这个登录页面,我必须在此文本上使用 TouchableOpacity“已经有一个帐户?请改为登录!”将我发送到 singin 屏幕,但由于某种原因它无法正常工作想知道 Expo 上的 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");
        }}
      />
    </>
  );

【问题讨论】:

  • 大括号是不同的。在您的 touchableOpacity 上,尝试像使用按钮一样包装您的 navigation.navigate(routeName)。我不知道它是否会起作用,但我在这里看不到任何问题,除非您的 routeName 变量未定义或其他什么。

标签: javascript android ios reactjs react-native


【解决方案1】:

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

所以你只需替换

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

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

应该可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-07
    • 2020-08-18
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多