在子组件 React Native 中关闭模式

2023-12-26

我有两个本机组件,我无法从我的子组件中关闭模式。

ListTrips - 家长

ModalAddTrip - 子级

ListTrips.js

import ModalAddTrip from './ModalAddTrip';
....
....
this.state = {
    isModalAddTripVisible: false
} 
....
handleDismissModalAddTrip = () => {
    this.setState({ isModalAddTripVisible: false });
};

closeModal() {
    this.refs.ModalAdd.handleDismissModalAddTrip();
}
....

<ModalAddTrip
    ref="ModalAdd"
    isVisible={this.state.isModalAddTripVisible}
    onBackDropPress={this.handleDismissModalAddTrip}
    closeModal={() => this.closeModal()}
    onRequestClose={this.handleDismissModalAddTrip}
/>

ModalAddTrip.js

<Modal
    isVisible={isVisible}
    onBackdropPress={onBackDropPress}
    closeModal={this.props.child}
>
<Button
    style={{ fontSize: 18, color: 'white' }}
    containerStyle={{
        padding: 8,
        marginLeft: 70,
    }}
    onPress={this.closeModal}
>

打开模式后我无法关闭它。我知道它与引用/道具有关,但我已经弄乱了几个小时,但我无法到达任何地方。我正在尝试类似的事情this.props.closeModal;以及将引用切换到子组件,但它也不起作用。在 ModalAddTrip 的函数内部,但这也不起作用。

任何帮助是极大的赞赏。 谢谢


这是我用来处理模态的解决方案。

export default class MyModal extends React.Component<Props, State>{

  constructor(props: Props){
    super(props);
    this.state = {
      visible: false,
    }
  }

  // Use this method to toggle the modal !
  toggleModal = () => {
    this.setState({visible: !this.state.visible});
  }


  render(){
    return(
      <Modal
      isVisible={this.state.visible}
      hideModalContentWhileAnimating
      onBackdropPress={() => {
        this.toggleModal();
      }}
      useNativeDriver
      >
        <View style={{backgroundColor: "white", padding: 5}}>
        </View>
      </Modal>
    );
  }
}

如果我按下它的后面,模态框将关闭 -> 它可以自行关闭。

现在要从父组件管理它,只需从模态中获取引用:

  <MyModal 
    ref={ref => {
      this.myModal = ref;
    }}
  />

您可以从父组件切换它:

toggleMyModal = () => {
    if(this.myModal){
      this.myModal.toggleModal();
    }
  }

如果你成功了请告诉我:)

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

在子组件 React Native 中关闭模式 的相关文章

随机推荐

  • Kotlin中无限序列的递归定义

    我正在尝试 Kotlin 序列 特别是更复杂的序列 它们不是对前一个值进行简单计算 我想定义的一个例子是所有素数的序列 定义下一个素数的一种简单方法是下一个不能被序列中任何先前素数整除的整数 在 Scala 中 这可以翻译为 def pri
  • 绘图 - 多个表面的不同色标

    我正在尝试使用plotly 4 7 1 和R 3 4 1在同一个图上绘制两个3D曲面 具有两种不同的色标 一个为蓝色 另一个为紫色 和颜色值从 z 值导出 当我单独绘制曲面时 它工作得很好 但是当我使用 add trace 或 add su
  • 使用 HKObserverQuery 观察 HealthKit 数据的变化

    当我设置 HKObserverQuery 时 更新处理程序总是立即被调用 这是我没想到的 正如您所期望的 当我通过 Health app 添加数据点时 它也会被调用 我倾向于认为我没有对完成处理程序做正确的事情 但是文档对于这里应该发生的事
  • 获取每行的三个最小值并返回对应的列名

    我有两个数据框 df 和 df2 它们是对应的 现在基于第一个数据帧 df 我想获取一行中的 3 个最小值并返回相应列的名称 在本例中为 X 或 Y 或 Z 或 T 这样我就可以获得新的数据帧 df3 df pd DataFrame X 2
  • 如何初始化 zap 记录器一次并在其他 Go 文件中重用它?

    我正在尝试从漂亮的 Logrus 对调试非常有帮助 迁移我的应用程序 并引入 Uber 日志框架 Zap 使用 Logrus 我只能初始化记录器一次并从其他 Go 文件中重用它 例如 package main import Print fi
  • 从actionscript 3中的完整路径中提取“文件名”

    AS3 是否有内置类 函数来从完整路径中提取 文件名 例如我希望提取 文件名 doc 来自完整路径 C Documents and Settings All Users Desktop filename doc 对于 Air 您可以尝试使用
  • Tensorflow 1.10 TFRecordDataset - 恢复 TFRecord

    Notes 这个问题延续了之前的问题我的问题 https stackoverflow com questions 52035692 tensorflow v1 10 store images as byte strings or per c
  • C++ Primer 第 5 版有最新勘误表吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 通读这本书 感觉我在几个部分犯了错误 对于这么长的一本书 出现小故障和错误似乎很正常 我发现的唯一勘误
  • 使用 PapaParse transformHeader 删除标题中的空格?

    如果我们有一个像这样的 CSV 文件 firstName lastName Jim Carrey Stephen Colbert Papaparse 将输出动态类型结果 如下所示 firstName Jim lastName 30000 为
  • 找不到模块“@angular/material”

    我正在使用 Angular 2 当我尝试导入 angular material 时 我遇到了错误 我正在导入如下包 import MdDialog from angular material import MdDialogRef from
  • android.content.ActivityNotFoundException“android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS”

    我正在尝试引导我的用户进行电池优化活动 它似乎对大多数手机都有效 除了一些搭载 Android 6 的三星手机 我得到 Fatal Exception android content ActivityNotFoundException No
  • Angular 2,实现 OnActivate 的组件永远不会调用 routerOnActivate 方法

    我正在尝试使用 Angular 2 Router 记录当前路由 使用官方文档中的示例代码 https angular io docs ts latest api router OnActivate interface html https
  • 在多模块项目上作为“一件”运行 Proguard

    TLDR 如何将 proguard 映射传递给 javac 以针对混淆库进行编译 这很长 但我不知道如何缩短它 背景 我有以下产品设置 Android Studio项目 图书馆模块 子 模块核心 子 模块 A 子 模块 B 子 模块 C 示
  • 是否可以在 64 位 Windows 7 上使用 Qt4 获得本机菜单?

    用 Qt 4 编写的应用程序在 64 位 Windows 7 上运行时没有本机菜单 对于 VLC Lyx 等知名应用程序来说也是如此 Qt 菜单的行为与本机菜单不同 这可能很烦人 作为示例 请考虑下面的屏幕截图 如果鼠标沿着红色路径快速移动
  • 添加产品时,WooCommerce 将追加销售产品添加到购物车

    我正在尝试在我的 WooCommerce 主题中实现自定义追加销售功能 当用户添加产品时 我需要将额外的产品 追加销售 添加到其购物车 这意味着我必须向产品添加一个额外的参数 该参数允许我获取产品 追加销售的关系 并在从购物车中删除产品时删
  • 每月第一天的工作日

    我需要获取该月第一天的工作日 例如 对于当前月份 2013 年 9 月 第一天是星期日 首先 获取当月的第一天 例如 NSDate today NSDate date NSCalendar gregorian NSCalendar allo
  • 尝试更新测试版时 Google Play 出现错误

    当我尝试将新的 apk 上传到我的 beta 频道时 我收到此错误 Errors 在开始推出此版本之前解决这些错误 您无法推出此版本 因为它不允许任何现有用户升级到新添加的 APK 在我的 alpha 频道中 女巫的更新频率要高得多 我可以
  • Matplotlib条形图不绘制边框/边缘

    我的条形图有这个代码 ax1 plt subplot2grid 1 1 0 0 ax1 bar edges2 Nnorm width 0 02 edgecolor green linewidth 20 我认为这应该使我的条形图具有绿色边缘
  • 在酸洗 numpy 数组的子类时保留自定义属性

    我创建了 numpy ndarray 的子类如下numpy 文档 http docs scipy org doc numpy user basics subclassing html 特别是 我有添加了自定义属性 http docs sci
  • 在子组件 React Native 中关闭模式

    我有两个本机组件 我无法从我的子组件中关闭模式 ListTrips 家长 ModalAddTrip 子级 ListTrips js import ModalAddTrip from ModalAddTrip this state isMod