import React from 'react'; import { StyleProp, ViewStyle } from 'react-native'; import RMCCascader from '../picker/cascader'; import MultiPicker from '../picker/MultiPicker'; import RMCPicker from '../picker/Picker'; import { PickerData } from '../picker/PropsType'; function getDefaultProps() { return { cols: 3, cascade: true, value: [], onChange() {}, }; } export interface PickerViewProps { cols?: number; cascade?: boolean; value?: any[]; data?: PickerData[] | PickerData[][]; styles?: any; onChange?: (value?: any) => void; onScrollChange?: (value?: any) => void; indicatorStyle?: StyleProp; itemStyle?: StyleProp; } export default class PickerView extends React.Component { static defaultProps = getDefaultProps(); getCol = () => { const { data, indicatorStyle, itemStyle } = this.props; return (data as PickerData[][]).map((col, index) => { return ( {col.map(item => { return ( {item.label} ); })} ); }); } render() { // tslint:disable-next-line:no-this-assignment const { props } = this; let picker; if (props.cascade) { picker = ( ); } else { picker = ( {this.getCol()} ); } return picker; } }