react navigation实现透明弹窗

Posted xiangzhihong8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react navigation实现透明弹窗相关的知识,希望对你有一定的参考价值。

在React Native开发中,如果要实现弹窗效果,通常的方案是使用官方的Modal组件。不过,官方的Modal组件会有一些缺陷,比如在android端无法全屏显示,而在ios端中,当打开一个新的ViewController时会被Modal 组件给覆盖掉等。因此,在React Native应用开发中,为了屏蔽这些兼容性问题,我们可以使用react-native-root-siblings插件提供的RootSiblings组件来实现。

事实上,RootSiblings组件是对官方Modal组件的进一步的封装,能够有效的解决Modal组件的一些显示问题,使用方式也和Modal组件差不多,如下所示。

import RootSiblings from \'react-native-root-siblings\';

const alertShare = (onItemPress, onCancel, title) => 
  if (global.siblingShare) 
    global.siblingShare.destroy();
    onCancel();
    global.siblingShare = undefined;
   else 
    global.siblingShare = new RootSiblings( (
        <SharePanel
          onItemPress=onItemPress
          onCancel=onCancel
          title=title/>
      ) ); 
;

//调用分享方法
alertShare(onItemPress, () => 
   startAnimation(setShow(false));
)

可以看到,只需要使用

以上是关于react navigation实现透明弹窗的主要内容,如果未能解决你的问题,请参考以下文章

写弹窗时的一点发现

vue关闭弹窗时打开另一个弹窗,出现弹窗无法关闭的问题

React实现单例组件

element 关闭弹窗时清空表单信息

写弹窗时防止底层滚动

ElementUI中解决使用dropdown等弹窗时定位body而非template创建的dom节点