UNPKG

@uiw/react-native

Version:
84 lines (83 loc) 2.78 kB
import { StyleProp, TextStyle, ViewStyle } from 'react-native'; import React, { Component } from 'react'; export declare type SelectCascaderOneValue = string | number | undefined; export declare type SelectCascaderValue = SelectCascaderOneValue[]; export interface ICascaderDataItem { label: React.ReactNode; value: SelectCascaderOneValue; children?: ICascaderDataItem[]; } 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; /** 动作有触摸操作时显示出来的底层的颜色 */ underlayColor?: string; } export interface Istate { value: SelectCascaderValue; modalVisible: boolean; controlVisible: 'state' | 'props'; } export default class SelectCascader extends Component<SelectCascaderProps, Istate> { static defaultProps: { dismissText: string; okText: string; title: string; cols: number; maskClosable: boolean; }; state: Istate; static getDerivedStateFromProps(props: SelectCascaderProps, state: Istate): { modalVisible: boolean; controlVisible: string; value?: undefined; } | { value: SelectCascaderValue; modalVisible?: undefined; controlVisible?: undefined; } | { value: SelectCascaderValue; modalVisible: boolean; controlVisible: string; } | null; getSel(value: SelectCascaderValue): string; onValueChange: (itemValue: SelectCascaderOneValue, index: number) => void; getCols: () => JSX.Element[]; onDismiss: () => void; onOk: () => void; render(): JSX.Element; }