在自己的函数中响应导航 onPress

2024-02-05

我已经实现了教程中的 React Navigation 示例https://reactnavigation.org/docs/intro/ https://reactnavigation.org/docs/intro/而且效果很好。

<Button
  onPress={() => navigate('Chat')}
  title="Chat with Lucy"
/>

我想在单独的函数 btnToChat 中调用它,而不是直接在 onPress 中调用导航。我尝试用 this.props.navigation.navigate 调用它,但它不起作用。你有什么建议吗?谢谢你!

btnToChat(){
  console.log("test");
  this.props.navigation.navigate('Chat');    
}
render() {
  const { navigate } = this.props.navigation;
return (
  <View>
    <Button
      onPress={this._btnToChat}
    />
  </View>
    );
  }
}

出现以下错误:undefined is not an object (evaluating this.props.navigation)


一切正常,你只需要绑定_btnToChat访问方法(正确的上下文)this其中的关键字。

像这样:

btnToChat = () => {                      //here use arrow  function
    console.log("test");
    this.props.navigation.navigate('Chat');    
}

render() {
    const { navigate } = this.props.navigation;
    return (
        <View>
            <Button
                onPress={this._btnToChat}
            />  
        </View>
    );
}

或者定义绑定_btnToChat里面的方法constructor:

constructor(){
   super();
   this._btnToChat = this._btnToChat.bind(this);
}

btnToChat (){           
    console.log("test");
    this.props.navigation.navigate('Chat');    
}

render() {
    const { navigate } = this.props.navigation;
    return (
        <View>
            <Button
                onPress={this._btnToChat}
            />  
        </View>
    );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在自己的函数中响应导航 onPress 的相关文章

随机推荐

  • 在清单中声明 Google api 密钥(对于 youtube API)

    使用地图 API 我可以在清单中声明我的密钥
  • 部署的 Azure Function (v2) 未运行

    我有一个 Azure Function v2 可以在本地运行 部署到 Azure 后 一切似乎都正常 包含二进制文件的 bin 文件夹和包含 function json 的函数名称文件夹 但是 当我检查它们是否运行 查看日志 时 它们不在监
  • JavaScript 中的 DOM 解析

    一些背景 我正在使用 JavaScript 开发一个基于 Web 的移动应用程序 HTML 渲染基于 Safari 跨域策略已禁用 因此我可以使用 XmlHttpRequests 调用其他域 这个想法是解析外部 HTML 并获取特定元素的文
  • 使用 Haskell 输入数据

    背景故事 为了更好地理解 Haskell 和函数式编程 我给自己布置了一些作业 我的第一个任务是编写一个程序 可以查看数据集 一组数字 博客中的单词等 搜索模式或重复 对它们进行分组并报告它们 听起来很容易 Question 我希望程序首先
  • SELECT ... ORDER BY xxx LIMIT 1 FOR UPDATE 将锁定多少行?

    我有一个具有以下结构的查询 SELECT WHERE status QUEUED ORDER BY position ASC LIMIT 1 FOR UPDATE 这是 InnoDB 表上的单表 SELECT 语句 场地position I
  • 将 onBlur 与 JSX 和 React 结合使用

    我正在尝试创建一个密码确认功能 仅在用户离开确认字段后才呈现错误 我正在使用 Facebook 的 React JS 这是我的输入组件
  • XSLT 1.0 金额字段必须至少有 2 位小数

    我有两个 xml 有一个金额字段 可以包含 54 2 54 23 54 234 54 234567 等值 有人请告诉我如何确保输出 xml 中至少出现两位小数 当前 54 2 转换为 54 2 但我希望它是 54 20 您可以使用 form
  • 我可以使用没有 getter 和 setter 的 mvc 吗?

    如果我不想公开对象的状态 但仍然需要显示它 例如 以 HTML XML 或 JSON 的形式 我将如何在 MVC 环境中做到这一点 使用导出方法来导出简化的不可变对象 如果愿意的话 可以称为 数据类 是否有意义 添加与接口对话的渲染方法怎么
  • python 属性重载运算符

    是否可以重载 python 属性上的运算符 就像是 class Foo object property def bar self return unfoobar self bar bar setter def bar self baz se
  • 在分析代码时是否应该使用匹配的 (gcc) 编译器优化标志?

    我在用 O3 http linux die net man 1 g 编译代码时 现在我需要对其进行分析 对于分析 我遇到了两个主要选择 valgrind tool callgrind http valgrind org docs manua
  • 当使用position:fixed时是否可以保持父元素的宽度?

    当我们申请时position fixed到一个元素 它被采取脱离正常流动 http quirksmode org css css2 position html link7文档的宽度 因此它不尊重其父元素的宽度 有没有办法让它继承父级的宽度如
  • writeHTMLCell() 之后的 TCPDF Write() 不会显示任何内容

    我使用后 pdf gt writeHTML 同一页面上不显示任何内容 如果我使用 pdf gt AddPage 然后用文字写成 pdf gt Write 再次显示 为什么 我应该怎么做才能在同一页上写字 html table table p
  • 在 Windows 窗体用户控件中嵌入 XNA 游戏

    我写了一个简单的 XNA 4 0 游戏 我想制作一个 Windows 窗体用户控件来渲染此游戏 并向 XNA 提供必要的交互反馈 键盘和鼠标 我已经尝试过以下方法 In XNA 将 XNA 的 Game GraphicsDevice 重定向
  • get_the_id 与 post->ID 与 the_id / get_post_meta

    我认为这一定是一个非常基本的问题 但我才刚刚开始 有人可以看一下下面相同 代码的 3 个版本并说出有什么区别吗 所有这些似乎在我正在处理的循环中都工作得很好 应该使用哪个 post gt ID the ID or get the id 是否
  • 如何从 Delphi 的主线程向 TThread 发送消息?

    我想向一个线程发送消息并在线程中处理它 我怎样才能在德尔福中做到这一点 我猜PostMessage是要走的路 但到目前为止我看到的例子描述的是另一种方式 即从线程到主线程 我什至不会尝试解释或编写任何代码 看看这个教程就知道了 它有点旧 但
  • 在启用 PyCharm 插件的情况下使用 CLion 逐步执行 C++ 代码

    启用 PyCharm 插件后 我在 CLion 中遇到问题 这就是我所做的 从 shell 运行 Python 程序 该程序创建多个进程 如工作进程 其中 Python 代码调用我想要调试的 C 代码 从 CLion 附加到原始主 Pyth
  • 在 MySQL 列中查找双引号

    我想查找带双引号的数据 我有下一个简单的查询 SELECT FROM table name WHERE column name LIKE 但我有语法错误 You have an error in your SQL syntax check
  • 在单个系统上运行客户端/服务器程序

    我想知道是否有两个程序 一个叫做server另一个叫client这两个分别说明了服务器和客户端 是否可以在一台机器上测试它们 考虑到我定义客户端套接字如下 socket new Socket 127 0 0 1 3000 编辑 服务器部分
  • 未找到“Aws\Common\Aws”类 cakephp

    我在 cakephp 中使用 AWS PHP SDK V2 8 我正在 AWS ec2 ubuntu 机器上工作 我使用 zip 文件而不是任何作曲家 我收到以下错误 Class Aws Common Aws not found 我创建了一
  • 在自己的函数中响应导航 onPress

    我已经实现了教程中的 React Navigation 示例https reactnavigation org docs intro https reactnavigation org docs intro 而且效果很好