import React, {Component} from 'react'; import { ScrollView, StyleSheet, Text, TouchableOpacity, SafeAreaView, } from 'react-native'; import examples from './examples'; export default class App extends Component { state = { picker: undefined, }; render() { return ( {!this.state.picker && 'Examples'} {!this.state.picker && this.renderButtons()} {!!this.state.picker && this.renderBackButton()} {!!this.state.picker && this.renderPicker()} ); } setBackgroundColor = backgroundColor => this.setState({backgroundColor}); renderPicker = () => { const Picker = examples[this.state.picker].component; return ( ); }; renderButtons = () => Object.keys(examples) .filter(key => key !== this.state.picker) .map(this.renderButton); renderButton = key => ( this.setState({picker: key})} style={{margin: 10}} > {examples[key].buttonTitle} ); renderBackButton = key => ( this.setState({picker: undefined})} style={{margin: 10, position: 'absolute', top: 30, left: 0}} > Go back ); } const styles = StyleSheet.create({ container: { paddingTop: 15, borderWidth: 1, }, content: { alignItems: 'center', }, text: { color: 'dodgerblue', fontSize: 16, }, header: { color: 'black', fontSize: 22, margin: 20, }, });