React-Native 组件之 Modal的使用详解
发布时间 - 2026-01-11 02:41:12 点击率:次Modal组件可以用来覆盖包含React Native根视图的原生视图(如UIViewController,Activity),用它可以实现遮罩的效果。

属性
Modal提供的属性有:
animationType(动画类型) PropTypes.oneOf([‘none', ‘slide', ‘fade']
- none:没有动画
- slide:从底部滑入
- fade:淡入视野
onRequestClose(被销毁时会调用此函数)
在 ‘Android' 平台,必需调用此函数
onShow(模态显示的时候被调用)
transparent (透明度) bool
为true时,使用透明背景渲染模态。
visible(可见性) bool
onOrientationChange(方向改变时调用)
在模态方向变化时调用,提供的方向只是 ” 或 ”。在初始化渲染的时候也会调用,但是不考虑当前方向。
supportedOrientations(允许模态旋转到任何指定取向)[‘portrait', ‘portrait-upside-down', ‘landscape','landscape-left','landscape-right'])
在iOS上,模态仍然受 info.plist 中的 UISupportedInterfaceOrientations字段中指定的限制。
示例
Modal的使用非常简单,例如:
<Modal
animationType='slide' // 从底部滑入
transparent={false} // 不透明
visible={this.state.isModal} // 根据isModal决定是否显示
onRequestClose={() => {this.onRequestClose()}} // android必须实现
>
综合例子:
import React, { Component} from 'react';
import {
AppRegistry,
View,
Modal,
TouchableOpacity,
Text
} from 'react-native';
export default class ModalView extends Component {
constructor(props) {
super(props);
this.state = {
modalVisible: false,
}
}
setModalVisible = (visible)=> {
this.setState({
modalVisible: visible
})
};
render(){
return(
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#ffaaff'}}>
<Modal animationType={'none'}
transparent={true}
visible={this.state.modalVisible}
onrequestclose={() => {alert("Modal has been closed.")}}
onShow={() => {alert("Modal has been open.")}}
supportedOrientations={['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right']}
onOrientationChange={() => {alert("Modal has been OrientationChange.")}}>
<View style={{flex:1, marginTop: 22, backgroundColor: '#aaaaaa', justifyContent: 'center', alignItems: 'center'}}>
<View>
<Text>Hello World!</Text>
<TouchableOpacity onPress={() => {
this.setModalVisible(false)
}}>
<Text>隐藏 Modal</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
<TouchableOpacity onPress={() => {
this.setModalVisible(true)
}}>
<Text>显示 Modal</Text>
</TouchableOpacity>
</View>
)
}
}
AppRegistry.registerComponent('ModalView', ()=>ModalView);
运行效果:
从 modal 的源码可以看出,modal 其实就是使用了 绝对定位,所以当 modal 无法满足我们的需求的时候,我们就可以通过 绝对定位 自己来封装一个 modal
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# React-Native
# Modal
# React
# Native组件Modal
# Modal.confirm是否违反了React模式分析
# React报错之组件不能作为JSX组件使用的解决方法
# react中使用ant组件库的modal弹窗报错问题及解决
# 模态
# 滑入
# 也会
# 可以看出
# 可以实现
# 用它
# 大家多多
# 就可以
# 可以用来
# 不透明
# 使用了
# 见性
# landscape
# upside
# left
# iOS
# onOrientationChange
# info
# portrait
# supportedOrientations
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
独立制作一个网站多少钱,建立网站需要花多少钱?
微信小程序 canvas开发实例及注意事项
公司网站制作价格怎么算,公司办个官网需要多少钱?
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Laravel如何生成URL和重定向?(路由助手函数)
Laravel PHP版本要求一览_Laravel各版本环境要求对照
大连网站制作公司哪家好一点,大连买房网站哪个好?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
如何快速生成凡客建站的专业级图册?
JavaScript Ajax实现异步通信
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
如何基于云服务器快速搭建个人网站?
在Oracle关闭情况下如何修改spfile的参数
iOS验证手机号的正则表达式
深圳网站制作平台,深圳市做网站好的公司有哪些?
Python进程池调度策略_任务分发说明【指导】
Laravel Fortify是什么,和Jetstream有什么关系
Android okhttputils现在进度显示实例代码
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
教学论文网站制作软件有哪些,写论文用什么软件
?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
Laravel如何为API编写文档_Laravel API文档生成与维护方法
Python图片处理进阶教程_Pillow滤镜与图像增强
php485函数参数是什么意思_php485各参数详细说明【介绍】
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
如何在阿里云部署织梦网站?
如何快速生成橙子建站落地页链接?
Android仿QQ列表左滑删除操作
JS去除重复并统计数量的实现方法
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
详解MySQL数据库的安装与密码配置
javascript日期怎么处理_如何格式化输出
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
如何用AWS免费套餐快速搭建高效网站?
网站制作报价单模板图片,小松挖机官方网站报价?
Laravel如何自定义错误页面(404, 500)?(代码示例)
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Firefox Developer Edition开发者版本入口
如何在阿里云通过域名搭建网站?
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
重庆市网站制作公司,重庆招聘网站哪个好?
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
如何彻底卸载建站之星软件?
js实现点击每个li节点,都弹出其文本值及修改
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
打开php文件提示内存不足_怎么调整php内存限制【解决方案】

