渲染出一个普通浮层
- 包含两种浮层 popupLayer: 使用原生的modal实现的弹层组件,只支持弹出时动画 QPopupLayer: 使用
Portal
自定义Modal,支持全动画需要在页面外层增加provider
npm install @qnpm/q-popup-layer --save --registry=http://npmrepo.corp.qunar.com
显示代码
import { PopupLayer } from '@qnpm/q-popup-layer';
<PopupLayer
title='popupLayer浮层'
perHeight={'auto'}
onClose = {() => {}}
visible={visible}
>
</PopupLayer>
显示代码
import React from 'react';
import { View, Text } from 'react-native';
import { Porvider } from '@qnpm/qportal';
export class HomeView extends QView {
render() {
<Porvider>
<View>
<Text>
这里是正常应用的app根节点
</Text>
</View>
</Porvider>
}
}
// 业务组件
import React, { useState } from 'react';
import { Text } from 'react-native';
import { QPopupLayer } from '@qnpm/q-popup-layer';
function demo() {
const [
visible, update
] = useState(false);
return (
<View>
<QPopupLayer
title='QPopupLayer全屏组件'
perHeight={100}
visible={visible}
>
</QPopupLayer>
</View>
)
}
属性名 | 类型 | 默认值 | 是否必须 | 说明 |
---|---|---|---|---|
accessibilityPreName |
string |
`` | false |
无障碍标签前缀 |
animationType |
string |
- | slide |
动画类型,默认时slide,支持none |
children |
React.ReactNode |
- | false |
弹层的主内容 |
hasHeader |
boolean |
true |
false |
是否需要header,版本:>=0.0.8 |
maskClosable |
boolean |
- | false |
半屏浮层,背景是否可点 |
needScale |
boolean |
false |
false |
目前实现方式,不支持动态修改,初始化时会使用props.needScale初始化 |
onClose |
Function |
- | false |
关闭弹层回调 |
onShow |
Function |
- | false |
弹层弹起后的回调 |
perHeight |
number | auto |
100 |
false |
传auto时,会设置maxHeight和minHeight为80%和40%;浮层的百分比高度可自定义(0~100) |
shadow |
boolean |
false |
false |
为true时,使用shadow组件的shadow3来给标题渲染下阴影 |
style |
styleProps<ViewStyle> |
null | false |
浮层内层空白的样式,此地可以使用height:auto 覆盖原有的perHeight来实现高度自使用(perHeight)必须传不为100的值 |
swipeBackControl |
boolean |
false |
false |
是否禁止左滑操作,设置为true 时,会在浮层弹起时阻止左滑返回操作,浮层收起时左滑返回正常,版本:>=0.0.8 |
title |
string | React.ReactNode |
- | false |
展示弹层标题,或者是使用ReactNode自己替代渲染 |
titleAlign |
left |
- | false |
传left时标题文字朝左对齐,别的时候都是居中 |
wrapStyle |
styleProps<ViewStyle> |
null | false |
modal外层盒子的样式 |
resetSwipeBackCtrlWhenClose |
boolean |
QPopupLayer 为true,PopupLayer 为false |
false |
浮层关闭时是否重置iOS滑动返回的开关 |