React native 使用react本机模态的最佳实践

React native 使用react本机模态的最佳实践,react-native,react-modal,React Native,React Modal,我的react原生应用程序有几种情况,可以显示不同的模态。我想知道实现这一目标的最佳方式是什么。总的来说,我看到两种不同的方法: a) 在根视图上,我总是安装了模态组件,只需切换内容,如下所示 <View> {...} <Modal visible={this.props.modal > 0}> {this.props.modal === 1 && <ModalContent1 />}

我的react原生应用程序有几种情况,可以显示不同的模态。我想知道实现这一目标的最佳方式是什么。总的来说,我看到两种不同的方法:

a) 在根视图上,我总是安装了
模态组件
,只需切换内容,如下所示

<View>
    {...}
    <Modal visible={this.props.modal > 0}>
         {this.props.modal === 1 && <ModalContent1 />}
         {this.props.modal === 2 && <ModalContent2 />}
         {this.props.modal === 3 && <ModalContent3 />}
    </Modal>
</View>

{...}
0}>
{this.props.modal===1&&}
{this.props.modal===2&&}
{this.props.modal===3&&}
b)每个模式都有自己的
modal
-组件,安装在树中某个位置,靠近触发位置

你喜欢哪种方式?为什么


适用于这两种方法的一个问题是,是否应始终安装
模态
-组件,并且仅使用
可见
-道具触发。如果是这样的话,我假设方法b)需要更多内存,因为创建了
模态组件的多个实例。

我个人使用堆栈导航器在我的应用程序中实现模态。我的模态包括“创建后模态”、“无互联网连接模态”等

这允许我从应用程序中的任何位置访问这些模态,并可以直接持久化/阻止其他动作。要了解有关如何使用React导航的更多信息,您可以阅读以下两个链接:

  • 为了理解,它有一个专门用于透明背景模态的部分
  • 更多关于在React导航中实现模态的信息