如何将导航道具从父组件传递到标头?

2023-12-13

我有 4 个页面:App.js、HomeScreen.js、Login.js、Toolbar.js

我的应用程序页面与 StackNavigator:

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View
} from 'react-native';

import { StackNavigator, DrawerNavigator } from 'react-navigation';

import Splash from './screens/Splash';
import HomeScreen from './screens/HomeScreen';
import Login from './screens/Login';
import Lobby from './screens/Lobby';
import Wifi from './screens/Wifi';
import Toolbar from './components/ToolBar/Toolbar';
import Mobile from './screens/Mobile';


;

const Navigation = StackNavigator({
  Splash:{screen: Splash},
  HomeScreen:{screen: HomeScreen},
  Login:{screen: Login},
  Lobby:{screen: Lobby},
  Wifi:{screen: Wifi},
  Mobile:{screen:Mobile}
}, {
  mode: 'modal',
  headerMode: 'none'
});


export default Navigation;

我正在将工具栏导入到主屏幕,并希望将导航道具从主屏幕传递到工具栏,以便我可以从工具栏和主屏幕访问登录页面。

我的工具栏页面:

import React,{Component} from 'react';
import {Text, View, Button, StyleSheet, TouchableOpacity, 
    Dimensions,
    Image,ScrollView, Picker, FlatList} from 'react-native';
import { StackNavigator, DrawerNavigator } from 'react-navigation';
import config from '../../components/config/index';




class Toolbar extends Component{
    constructor(){
        super()
        this.state = {

        }
    }
    render(){
    //const {navigate} = this.props.navigation;
        return(
            <View style={styles.mainToolbar}>
                <View style={styles.containerForThree}>
                    <View style={styles.leftArrowContainer}>

                        <TouchableOpacity
                            onPress={()=>navigate('Login')}
                        >
                            <Text>hello</Text>

                        </TouchableOpacity>

                    </View>

截至目前,我已将 const navigation 注释掉,因为如果出现 HomeScreen,则不会加载它。

主屏幕:

import React,{Component} from 'react';
import {
    AppRegistry, StyleSheet, Text, View, Image, ScrollView, Button, TouchableOpacity, Dimensions
    } from 'react-native';
import { StackNavigator } from 'react-navigation';
import Toolbar from '../components/ToolBar/Toolbar';

export default class HomeScreen extends Component {
    static navigationOptions ={
        title: 'Home Screen'
    };


    onValueChange(value, idx){
        this.setState({
            language: value
        })

        AsyncStorage.setItem('language', value)   
    }

    render(){
        var {navigate} = this.props.navigation;
        return(
            <View style={styles.scrollContainer}>
            <Toolbar navigate={navigate}/>
                <View>
                    <Text>Welcome To the SEcond Page</Text>
                        <Button
                            onPress={
                                ()=>navigate("Login")
                            }
                            title="Go to Login"
                        />
                </View>

我尝试通过以下方式将导航道具从主屏幕传递到工具栏

当我按下按钮时,它说找不到变量“导航”。但是,当我取消注释工具栏上的导航时,我收到错误 TypeError: undefined is not an object(evaluating 'this.props.navigation.navigate')


这里你正在传递一个道具navigate to Toolbar: <Toolbar navigate={navigate}/>

因此您需要在中引用它render(): const { navigate } = this.props;

所以这只是一个小错误,但这就是修复它的方法。

我个人鼓励通过navigation to Toolbar: <Toolbar navigation={ this.props.navigation } />。因此,您可以更清楚地了解导航对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将导航道具从父组件传递到标头? 的相关文章

  • React-native:将场景绑定到导航栏

    我正在整理这个提问 回答应用程序 并遇到了这个障碍 我想从导航栏触发场景中的功能 与登录应用程序类似 我在导航栏中有一个用于提交答案的按钮 RightButton route navigator index navState if rout
  • 应用程序位于前台时的 IOS Expo 推送通知

    从博览会文档中阅读 对于 iOS 明智的做法是处理以下推送通知 当应用程序处于前台时收到 因为否则用户 永远不会见到他们 应用程序运行时到达的通知 iOS 上的前台不会显示在系统通知列表中 A 常见的解决方案是手动显示通知 为了 例如 如果
  • 在 IOS 中通过 Linking.openURL React Native 打开设置

    我想从我的应用程序打开 ios 设置应用程序 设置目标是 settings gt notification gt myapp 打开和关闭推送通知 有一些关于如何链接到设置的文档 但我不知道如何打开深层链接 通知 gt myapp 我怎样才能
  • React Native - 跨屏幕传递数据

    我遇到了一些麻烦react native应用程序 我不知道如何跨屏幕传递数据 我意识到还有其他类似的问题在 SO 上得到了回答 但是这些解决方案对我来说不起作用 我正在使用StackNavigator 这是我的设置App js file e
  • React Native 反应导航 SafeArea 问题

    我更新了我的android项目 react navigation was 3 x 搬去5 x 决定实施必要的更改 但它不想工作 从反应导航页面复制了示例 但仍然显示相同的错误 有人知道问题出在哪里吗 当我用谷歌搜索一半的互联网时找不到解决方
  • React Native Android 构建错误 MainActivity.java:29: 错误: 找不到符号

    我在尝试编译我的 React Native android 应用程序时收到此错误 Android 应用程序无法解析 BuildConfig DEBUG app processDebugJavaRes UP TO DATE app compi
  • 在按钮下方显示模式 -React Native

    我们可以在原生 android 中保留一个组件 如某些组件 id 的layout below 中所示 我们如何在 React Native 中做到这一点 假设我有一个模式或警报框 我希望它在单击时显示在特定按钮的正下方 我怎样才能做到这一点
  • 如何使用反应导航在导航抽屉中添加部分分隔符

    假设我的抽屉导航中有五个项目 我想在三个项目之后添加分隔符 如何使用反应导航添加它 正如提到的 vonovak 你可以通过使用来实现这一点contentComponent允许完全定制抽屉 为此 您需要创建自定义组件来覆盖默认抽屉 代码示例
  • React Native 模块中的 EADemo 永远不会收到委托方法handleEvent NSStreamEventOpenCompleted?

    我希望我有一个反应本机桥接模块 https facebook github io react native docs native modules ios html 线程 委托或生命周期问题 我不明白这些问题正在阻止接收委托方法调用 我需要
  • React:搜索过滤器无法正常工作

    我通过 API 从服务器获取记录 API 是在 Loopback 中构建的 实际上 我在每个页面上显示 5 条记录 目前工作正常 我可以导航next or prev通过分页按钮 每页显示 5 条记录 问题是 当用户在搜索框中键入内容时 记录
  • 在模拟器中启动应用程序后,“React Native run android”立即停止

    我正在尝试测试我的 Android 应用程序 但是当我启动它时react native run android命令在设备上启动后立即停止 不会出现错误 我懂了 This build could be faster please consid
  • 从父组件触发子组件内部的函数

    如何从父组件触发子组件内部的函数 以与抽屉导航相同的风格进行操作 他们这样做 this props navigation toggleDrawer 来自父母 我怎样才能做同样的事情 如果我正确理解你的问题 我认为你有点混淆了 您显示的示例是
  • 无法立即更新状态?

    我有两个功能 第一个功能是我收到所有订单 第二个功能是我收到所有被拒绝的订单 所以在第一个函数中 我根据第二个函数状态更新状态 效果很好 但是当我从 Firebase 控制台删除项目时 尽管我使用on value gt 那么我该如何处理呢
  • 如何向 React 中的 onChange 函数传递附加参数

    所以 我遇到了这个问题 我这里有这种类型的元素 显然在更改输入时有事件 是否可以像这样传递参数并访问事件 如果是这样 我该怎么办 this function accepts two other params index stringValu
  • React Native:约束 Animated.Value

    我正在制作一个 React Native 应用程序 场景是这样的 我希望用户能够平移视图 但不完全按照他想要的方式 我想约束视图被拖动时可以移动的距离由用户 我已经阅读了两者的文档PanResponder and AnimatedAPI 多
  • React-nativeanimate.event 自定义 onScroll 监听器

    在官方的react native文档中有一个关于Animated event方法 例如 他们使用以下代码 onScroll Animated event scrollX e nativeEvent contentOffset x nativ
  • React Native + Redux 基本身份验证

    我正在寻找一种为我的反应本机应用程序创建基本身份验证的方法 我找不到任何反应本机应用程序的好例子 要登录 应用程序将电子邮件 密码 clientSecret 发送到我的服务器 如果OK 服务器返回accessToken refreshTok
  • jest快照测试:如何忽略jest测试结果中的部分快照文件

    问题 忽略 snap 文件测试结果的某些部分 这里的问题是 我的测试中有一些组件具有随机值 我并不真正关心测试它们 有什么办法可以忽略我的 X snap 文件的一部分吗 因此 当我将来运行测试时 它不会给我测试失败的结果 现在您还可以使用属
  • React Native Tab 视图的高度始终等于最高选项卡的高度

    介绍 我有一个 FlatList 它在页脚中呈现一个选项卡视图 此选项卡视图允许用户在一个 FlatList 或另一个 FlatList 之间切换 所以 最后这些是同级 FlatList Problem 第一个 FlatList A 的高度
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行

随机推荐

  • 在 C++ 中调整文件大小

    我很惊讶地说 我还没有找到关于如何使用 C 标准库调整文件大小的合理解决方案 必须从原始文件中读取数据 然后将其写入另一个文件中 这似乎完全是愚蠢和浪费的 我只是想要一个调整大小的方法来截断超出该大小的数据 有什么可以做到这一点吗 编辑 如
  • 我们可以从后台线程更新 UI 吗?

    你好 iOS 专家 只是为了澄清我的概念 我对主线程的 UI 更新有点困惑 Apple 的要求是所有 UI 相关的事情都应该在主线程中进行 因此要测试 Case1 我将任务异步分派到全局分派并发队列 经过一些处理后 我直接从并发队列 后台线
  • 级联持久化具有未知 PK/FK 属性的 JPA 实体违反 NotNullConstraint

    我想保留一个具有许多 1 1 或 1 many 关系的 JPA 实体 只需一次调用persist Problem 实体的主键是自动生成的 并用作子实体中的外键 提交事务时 出现异常 指出子实体的外键列上违反了 NotNullConstrai
  • 打开带有多个选项卡的 IE

    我正在尝试创建一个可以添加到启动文件夹中的 AutoHotkey 脚本 以使用多个预定选项卡打开 IE 我在工作中经常使用几个网站 并且我希望在加载这些页面后首次登录时自动打开 IE 我搜索并找到了一些 AHK 我尝试根据自己的需要更改它们
  • 在python中打印二维数组

    我必须在 5x5 数组中打印此 python 代码 该数组应如下所示 0 1 4 infinity 3 1 0 2 infinity 4 4 2 0 1 5 inf inf 1 0 3 3 4 5 3 0 谁能帮我打印这张表吗 使用索引 f
  • 如何使用codeigniter框架在jquery中读取csv文件

    假设这是我的 csv 文件 fileempId lastName firstName middleName street1 street2 city state zip gender birthDate ssn empStatus join
  • 错误:PermissionUtils 包不存在

    我想通过我的应用程序找到用户的当前位置 我从 Github 复制了源代码 我不知道它不会给我任何错误 但这个错误 这是我的所有库的代码 以防您认为我错过了一个库 import com google android gms maps Goog
  • 根据命名向量更改列名称 (R)

    我有以下数据框 a b c d e f g h i j 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 以及以下向量 或数据框
  • Google 电子表格“=QUERY” join() 等效函数?

    这个问题是关于使用 QUERY 函数在 Google 电子表格中连接两个数据库 我有一个像这样的表 范围为 A1 C3 a d g b e h c f i 我还有另一张桌子 c j m a k n b l o 我希望决赛桌看起来像这样 a
  • Google 容器引擎 Kubernetes 服务 LoadBalancer 是否将流量发送到无响应的主机?

    问 Kubernetes 通过 Google Container Engine 创建的 Google Cloud 网络 LoadBalancer 是否会将流量发送到未监听的主机 此目标池没有运行状况检查 因此流量将发送到所有实例 无论其状态
  • 如何使用cURL发送Cookies?

    我读到了使用 cURL 发送 cookie有效 但不适合我 我有一个像这样的 REST 端点 class LoginResource restful Resource def get self print session if USER T
  • C++“返回局部变量的引用”

    我在使用此函数时遇到错误 说 警告 对局部变量 final 的引用返回 任何想法有什么问题吗 以及如何修复它 vector
  • 一种在 MVC 中封装(添加隐私)模型的方法?

    我为我的模型和单个控制器命名空间 如下所示 var MC 然后根据需要添加属性 例如 初始化所有模型的代码如下所示 MC initAll function MC MASettings init MC MATweet init MC MUse
  • 如何通过短信检索 GPS 位置

    我制作了一个应用程序 可以为我提供 Android 手机的位置 现在我想做一个方法 帮助我通过短信检索手机的 GPS 位置 纬度经度或地址 如果可能 例如 电话号码 558899 我向 558899 发送一条包含 获取位置 的短信 并收到一
  • 解析存储在 Oracle 表中的 XML 字符串

    我的数据库中存储了一个类似的 XML 字符串
  • 如何在 gnuplot 处理的任何时间获取特定行中特定列的值?

    我得到了一个格式如下的数据文件 begin 16 1 15 2 14 3 13 4 12 5 11 6 现在我想使用 gnuplot 通过点画一条线 1 16 16 2 16 15 3 16 14 6 16 11 如您所见 x 轴是范围 1
  • 非常简单的 C# CSV 阅读器

    我想从 CSV 文件创建一个数组 这就像您想象的一样简单 CSV 文件只有一行和这些值 Device SignalStrength Location Time Age 我想将这些值放入一维数组中 我尝试了一些示例 但它们都比所需的更复杂 您
  • 列出当前进程中的所有线程?

    我正在尝试实现一个系统调用 它允许我获取当前进程的线程数 我是Linux内核的新手 所以我对它的理解很有限 目前 我正在尝试迭代所有task structs 并将它们的线程组领导者的PID与当前线程组领导者的PID进行比较 int nthr
  • 如何获取JFrame中的所有元素?

    我有这段代码来获取我需要的所有元素并进行一些处理 问题是我需要指定每个面板 我必须获取其中的元素 for Component c panCrawling getComponents processing for Component c pa
  • 如何将导航道具从父组件传递到标头?

    我有 4 个页面 App js HomeScreen js Login js Toolbar js 我的应用程序页面与 StackNavigator import React Component from react import Plat