rn 滑动验证_[RN] React Native 自定义 底部 弹出 选择框 实现

本文展示了如何在React Native中创建一个自定义的底部弹出选择框,用于滑动验证功能。组件使用`Dimensions`获取窗口宽度,并通过`Modal`组件实现弹出效果。内容包括组件的构造函数、状态管理、接收属性、关闭模态框的方法以及渲染列表项和对话框的逻辑。样式方面,设置了背景透明度、模态框位置、宽度和颜色等。

import React, {Component} from 'react';

import {Dimensions, Modal, StyleSheet, Text, TouchableOpacity, View}from 'react-native';const {width} = Dimensions.get('window');

exportdefault classCustomAlertDialog extends Component {

constructor(props) {

super(props);this.state ={

isVisible:this.props.show,

};this.entityList = this.props.entityList;

}

componentWillReceiveProps(nextProps) {this.setState({isVisible: nextProps.show});

}

closeModal() {this.setState({

isVisible:false});this.props.closeModal(false);

}

renderItem(item, i) {return(

{item}

);

}

choose(i) {if (this.state.isVisible) {this.props.callback(i);this.closeModal();

}

}

renderDialog() {return(

{this.entityList.map((item, i) => this.renderItem(item, i))

}

)

}

render() {return(

transparent={true}

visible={this.state.isVisible}

animationType={'fade'}

onRequestClose={() => this.closeModal()}>

onPress={() => this.closeModal()}>{this.renderDialog()}

);

}

}const styles =StyleSheet.create({

container: {

flex:1,

backgroundColor:'rgba(0, 0, 0, 0.5)',

},

modalStyle: {

position:"absolute",

left:0,

bottom:0,

width: width,

flex:1,

flexDirection:"column",

backgroundColor:'#ffffff',

},

optArea: {

flex:1,

flexDirection:'column',

marginTop:12,

marginBottom:12,

},

item: {

width: width,

height:40,

paddingLeft:20,

paddingRight:20,

alignItems:'center',

},

itemText: {

fontSize:16,

},

cancel: {

width: width,

height:30,

marginTop:12,

alignItems:'center',

backgroundColor:'#ffffff'},

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值