/** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format * @flow */ 'use strict'; var React = require('react'); var ReactNative = require('react-native'); var {PickerIOS, Text, View} = ReactNative; var PickerItemIOS = PickerIOS.Item; var CAR_MAKES_AND_MODELS = { amc: { name: 'AMC', models: ['AMX', 'Concord', 'Eagle', 'Gremlin', 'Matador', 'Pacer'], }, alfa: { name: 'Alfa-Romeo', models: [ '159', '4C', 'Alfasud', 'Brera', 'GTV6', 'Giulia', 'MiTo', 'Spider', ], }, aston: { name: 'Aston Martin', models: ['DB5', 'DB9', 'DBS', 'Rapide', 'Vanquish', 'Vantage'], }, audi: { name: 'Audi', models: [ '90', '4000', '5000', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'Q5', 'Q7', ], }, austin: { name: 'Austin', models: ['America', 'Maestro', 'Maxi', 'Mini', 'Montego', 'Princess'], }, borgward: { name: 'Borgward', models: ['Hansa', 'Isabella', 'P100'], }, buick: { name: 'Buick', models: [ 'Electra', 'LaCrosse', 'LeSabre', 'Park Avenue', 'Regal', 'Roadmaster', 'Skylark', ], }, cadillac: { name: 'Cadillac', models: ['Catera', 'Cimarron', 'Eldorado', 'Fleetwood', 'Sedan de Ville'], }, chevrolet: { name: 'Chevrolet', models: [ 'Astro', 'Aveo', 'Bel Air', 'Captiva', 'Cavalier', 'Chevelle', 'Corvair', 'Corvette', 'Cruze', 'Nova', 'SS', 'Vega', 'Volt', ], }, }; class PickerExample extends React.Component<{}, $FlowFixMeState> { state = { carMake: 'cadillac', modelIndex: 3, }; render() { var make = CAR_MAKES_AND_MODELS[this.state.carMake]; var selectionString = make.name + ' ' + make.models[this.state.modelIndex]; return ( Please choose a make for your car: this.setState({carMake, modelIndex: 0})}> {Object.keys(CAR_MAKES_AND_MODELS).map(carMake => ( ))} Please choose a model of {make.name}: this.setState({modelIndex})}> {CAR_MAKES_AND_MODELS[this.state.carMake].models.map( (modelName, modelIndex) => ( ), )} You selected: {selectionString} ); } } class PickerStyleExample extends React.Component<{}, $FlowFixMeState> { state = { carMake: 'cadillac', modelIndex: 0, }; render() { return ( this.setState({carMake, modelIndex: 0})}> {Object.keys(CAR_MAKES_AND_MODELS).map(carMake => ( ))} ); } } exports.displayName = (undefined: ?string); exports.title = ''; exports.description = 'Render lists of selectable options with UIPickerView.'; exports.examples = [ { title: '', render: function(): React.Element { return ; }, }, { title: ' with custom styling', render: function(): React.Element { return ; }, }, ];