前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rn封装底部弹窗组件

Rn封装底部弹窗组件

作者头像
明知山
发布2023-05-11 09:15:57
4780
发布2023-05-11 09:15:57
举报
文章被收录于专栏:前端开发随笔前端开发随笔
在这里插入图片描述
在这里插入图片描述

PopUp弹窗组件

代码语言:javascript
复制
import React from "react"
import { Dimensions, Modal, StyleSheet, TouchableOpacity, View } from 'react-native'
const { width } = Dimensions.get('window')

export default (props) => {
    const { visible, closeModal, children } = props

    const close = () => {
        closeModal(false)
    }

    return (
        <Modal transparent visible={visible} animationType={'fade'} onRequestClose={() => close()}>
            <TouchableOpacity style={styles.overlay} activeOpacity={1}
                onPress={() => close()} />
            <View style={styles.content}>
                {children}
            </View>
        </Modal>
    )
}

const styles = StyleSheet.create({
    overlay: {
        flex: 1,
        backgroundColor: 'rgba(0, 0, 0, 0.5)',
    },

    content: {
        position: "absolute",
        left: 0,
        bottom: 0,
        width: width,
        backgroundColor: '#ffffff',
        zIndex: 1,
        padding: 20,
    },
})

父组件引入

代码语言:javascript
复制
import React, { useState } from 'react'
import { Button, Text } from 'react-native'
import PopUp from "../components/PopUp"

export default () => {
    const [visible, setVisible] = useState(false)

    return (
        <>
            <Button title="打开弹窗" onPress={() => setVisible(true)} />
            <PopUp visible={visible} closeModal={() => setVisible(false)}>
                <Text>占位</Text>
                <Text>占位</Text>
                <Text>占位</Text>
                <Text>占位</Text>
                <Text>占位</Text>
                <Text>占位</Text>
            </PopUp>
        </>
    )
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档