@uiw/react-native
Version:
UIW for React Native
84 lines (83 loc) • 2.78 kB
TypeScript
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;
}