Skip to content

Instantly share code, notes, and snippets.

@quarrant
Created October 10, 2019 09:48
Show Gist options
  • Save quarrant/94a93aea0e9a5f40a0f3a60cb8a471b6 to your computer and use it in GitHub Desktop.
Save quarrant/94a93aea0e9a5f40a0f3a60cb8a471b6 to your computer and use it in GitHub Desktop.
Простая реализация Picker из 2 колонок с разными данными
import React from 'react';
import { View, StyleSheet, Picker } from 'react-native';
class ColumnPicker extends React.Component<{ data: string[] }> {
state = { selectedValue: undefined };
private renderItem = (item: string) => {
return <Picker.Item key={item} label={item} value={item} />;
};
private onValueChange = (value: string) => {
this.setState({ selectedValue: value });
};
render() {
const { data } = this.props;
const { selectedValue } = this.state;
return (
<View style={styles.column}>
<Picker selectedValue={selectedValue} onValueChange={this.onValueChange}>
{data.map(this.renderItem)}
</Picker>
</View>
);
}
}
export default class MonthYearPicker extends React.Component {
render() {
return (
<View style={styles.container}>
<ColumnPicker
data={[
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December',
]}
/>
<ColumnPicker data={['2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007']} />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flexDirection: 'row',
height: 300,
},
column: {
flex: 1,
},
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment