当前位置: 首页 > 知识库问答 >
问题:

找不到变量:"导航"在反应本机。这是我的代码,我用了YouTube上的一些

荀靖
2023-03-14
import React from "react";
import { View, Button, StyleSheet, TouchableOpacity, Text } from "react-native";

    TouchableOpacity.defaultProps = { activeOpacity: 0.8 };

//touchableOpacity makes the button

    const AppButton = ({ onPress, title }) => (
      <TouchableOpacity onPress={()=>navigation.navigate('SignInScreen')} style= 
   {styles.appButtonContainer}>
        <Text style={styles.appButtonText}>{title}</Text>
      </TouchableOpacity>
    );

   //Navigation should lead to SignInScreen

const App = ({navigation}) => {
  return (
    <View style={styles.screenContainer}>
      <AppButton title="Register" size="sm" backgroundColor="#007bff" />
    </View>
  );
};

//样式按钮和所有内容constyles=样式表。创建({screenContainer:{flex:1,justifyContent:'flex end',padding:16},appButtonContainer:{elevation:8,backgroundColor:'009688',borderRadius:10,height:60,paddingVertical:10,paddingHorizontal:12}AppButtontText:{fontSize:30,color:'fff',fontWeight:'bold',alignSelf:'center',textTransform:'Upcase:});

export default App;

共有2个答案

澹台举
2023-03-14

您似乎没有从任何地方声明或导入导航
但是假设您使用的是反应导航,您应该使用使用导航钩子。像这样:

import { useNavigation } from "@react-navigation/native";

const AppButton = ({ onPress, title }) => {
    const navigation = useNavigation();

    return (
        <TouchableOpacity onPress={() => navigation.navigate('SignInScreen')} style=
            {styles.appButtonContainer}>
            <Text style={styles.appButtonText}>{title}</Text>
        </TouchableOpacity>
    );
};

当必须将道具传递给不同的组件时,这也得益于更少的混乱。

沈凯康
2023-03-14

它还需要AppButton中的导航对象。我可以看到您将导航对象作为道具传递给应用程序。但是,我没有在AppButton中看到它。

const AppButton = ({ onPress, title,navigation }) => (

      <TouchableOpacity onPress={()=>navigation.navigate('SignInScreen') style={styles.appButtonContainer}>
        <Text style={styles.appButtonText}>{title}</Text>
      </TouchableOpacity>

 );
 类似资料:
  • 我在用python编码,这是学校的项目。它基本上是一个应用程序,用户可以阅读和/或制造他们自己的头脑,或阅读和/或制造他们自己的笑话。在代码中,我给了他们一个机会来查看他们的笑话或脑筋急转弯,但如果他们没有做一个,而他们试图查看它,代码就会崩溃。我真的需要解决这个问题。如果这个问题措辞不好,请原谅。:(

  • 我可以在一个对象中携带一行代码吗?如果存在的话,我可以运行这些代码吗?例如,一个数组携带应用于入站消息的信息,以便进一步处理。该主题用于检索正确的信息,以进行计算等。如果主题与第二个对象相同--我想在后处理中检索代码行--并用这样一行做进一步的数据操作。 这可能吗?这样的JS执行变量中的代码行会是什么样子?

  • 今天早上在wards上,我面临一个react原生android构建的问题。代码中的新更改不反映在设备上。没有生成失败。我试了以下几种 已删除并重新安装节点模块 反应-本机链接 ./gradlew clean 反应-本机包--平台android--开发人员false--条目-文件index.js--bundle-输出android/app/src/main/assets/index.android.

  • 增加了11个包,并在9秒内审核了1201个包 79个包正在寻找资金运行了解详细信息 47个漏洞(11个中等,36个高) 要解决不需要注意的问题,请运行:npm audit fix 要解决所有问题(包括破坏性更改),请运行:npm audit fix--force

  • 我使用expo cli制作了一个应用程序,现在我希望它弹出以作出本机反应。我使用命令“expo eject”弹出应用程序。当我给npm运行android时,应用程序没有成功构建,并且有很多错误。我试图解决这些问题,但没有一个解决办法对我有效。 react本地运行的android 运行jetifier将库迁移到AndroidX的信息。您可以使用“-no jetifier”标志禁用它。Jetifier

  • 我在java代码中使用有组织的BST。这个函数/方法应该搜索树中具有特定值的节点,并让用户知道它是否存在。 问题在于结尾的else语句。我的编译器说,else语句中的任何内容都是死代码,这意味着它没有被使用。但是,如果函数确实遇到null并且无法找到具有指定值的节点,我需要else语句中的代码。如果我将第二条else语句更改为