React Native Web 中 Modal 的替代方案

Posted

技术标签:

【中文标题】React Native Web 中 Modal 的替代方案【英文标题】:Alternative for Modal in React Native Web 【发布时间】:2018-01-10 06:39:11 【问题描述】:

React Native Web 中缺少 Modal 促使我构建了一个覆盖在当前视图之上的弹出组件。

我尝试过使用“绝对”位置,顶部:0 和左侧:0 hack。这很好用,但如果在子组件中使用它就不能正常工作,因为组件的顺序是自动 zIndex。下图说明了这个问题(请参阅蓝色按钮阻止下拉弹出窗口):

最终我发现 React 可以直接在根部渲染组件(在link 了解更多信息),这意味着该组件将在其他组件之上渲染,但这是针对 React 而不是 React Native。

我想知道 React Native 中是否有类似的东西。

【问题讨论】:

【参考方案1】:

尝试将您的组件放在层次结构的最后。然后使用位置“绝对”,顶部:0 和左侧:0 hack。它应该可以工作。

例如。

<View>
  renderComponent1()
  renderComponent2()
  renderComponentWithAbsoluteStyling() //Your component
</View>

在 RN 中,较低的组件在渲染时获得较高的优先级。所以你的组件应该覆盖component1和component2。

【讨论】:

这对可访问性来说不是很好。【参考方案2】:

使用“react-native-paper”中的模态,它对我有用

【讨论】:

以上是关于React Native Web 中 Modal 的替代方案的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Modal 在 react-native 中显示为不同的组件

React Native + react-native-router-flux:<Scene key='modal' component=Modal/> 有啥作用?

带有嵌套 ScrollView 的可滑动 React-native-modal

react-native-modal 内的导航

在 Modal 中防止键盘关闭 React Native

React Native Modal Selector中的全屏显示