UNPKG

@uiw/react-native

Version:
180 lines (168 loc) 4.16 kB
SelectCascader 级联选择 --- 可用于类似于省市区选择 ## 基础示例 ```jsx import { Component } from 'react'; import { SelectCascader } from '@uiw/react-native'; export default class SelectCascaderDemo extends Component { constructor(props: SelectCascaderProps) { super(props); this.state = { visible: false }; } onChange(val: any, label: string) { console.log("val-------->", val); console.log("label-------->", label); } render() { const data = [ { label: '北京', value: '01', children: [ { label: '东城区', value: '01-1', }, { label: '西城区', value: '01-2', }, { label: '崇文区', value: '01-3', }, { label: '宣武区', value: '01-4', }, ], }, { label: '浙江', value: '02', children: [ { label: '杭州', value: '02-1', children: [ { label: '西湖区', value: '02-1-1', }, { label: '上城区', value: '02-1-2', }, { label: '江干区', value: '02-1-3', }, { label: '下城区', value: '02-1-4', }, ], }, { label: '宁波', value: '02-2', children: [ { label: 'xx区', value: '02-2-1', }, { label: 'yy区', value: '02-2-2', }, ], }, { label: '温州', value: '02-3', }, { label: '嘉兴', value: '02-4', }, { label: '湖州', value: '02-5', }, { label: '绍兴', value: '02-6', }, ], }, ] return ( <React.Fragment> <Button onPress={() => { this.setState({visible: true}); }}> 显示选择器 </Button> <SelectCascader data={data} onChange={this.onChange} visible={this.state.visible} onDismiss={() => { this.setState({visible: false}); }} /> <React.Fragment> ); } } ``` ## Props ```ts import { StyleProp, TextStyle, ViewStyle } from 'react-native'; export type SelectCascaderOneValue = string | number | undefined; export type SelectCascaderValue = SelectCascaderOneValue[]; export interface SelectCascaderProps { /** 隐藏 */ onDismiss?: () => void; /** 弹框标题 */ title?: string; /** 取消button文字 */ dismissText?: string; /** 确定button文字 */ okText?: string; /** 自定义取消元素 */ renderDismissNode: React.ReactNode; /** 自定义标题元素 */ renderTitleNode: React.ReactNode; /** 自定义确定元素 */ renderOkNode: React.ReactNode; /** 选中的值 */ value?: SelectCascaderValue; /** 选中时执行此回调 */ onChange?: (value: SelectCascaderValue, label: string) => void; /** 显示隐藏控制值 */ visible: boolean; /** 列表数据 */ data: ICascaderDataItem[]; /** 默认选择的值 */ defaultValue?: SelectCascaderValue | undefined; /** 确定选中的值 */ onOk?: (value: SelectCascaderValue, label: string) => void; /** 列数 默认 3 */ cols?: number; /** 选择器样式 */ pickerItemStyle?: StyleProp<TextStyle>; /** 选择器头部样式 */ headerStyle?: StyleProp<ViewStyle>; /** 点击蒙层是否关闭 */ maskClosable?: boolean; /** 动作在被触摸操作激活时以多少不透明度显示 默认 1 */ activeOpacity?: number; /** 动作有触摸操作时显示出来的底层的颜色 默认 #f1f1f1 */ underlayColor?: string; } ```