react-native-simple-radio-button

부가 설명
라디오 버튼
Tags
button
radio
 

패키지 설치

$ npm i react-native-simple-radio-button --save 또는 $ yarn add react-native-simple-radio-button

기본 사용 예시 (Basic)

<RadioForm radio_props={radio_props} initial={0} onPress={(value) => {this.setState({value:value})}} />
 

multi-dots 클릭 연동 예시

import React from 'react'; import { StyleSheet, Text, View, Modal, Button } from 'react-native'; import { Calendar, CalendarList, Agenda } from 'react-native-calendars'; import moment from 'moment'; const vacation = { key: 'vacation', color: 'red', selectedDotColor: 'blue' }; const massage = { key: 'massage', color: 'blue', selectedDotColor: 'blue' }; const workout = { key: 'workout', color: 'green' }; const _format = 'YYYY-MM-DD'; const _today = moment(new Date().dateString).format(_format); export default class App extends React.Component { initialState = { [_today]: { disabled: false }, }; state = { _markedDates: this.initialState, isOpen: false, isDisabledOne: false, isDisabledTwo: false, isDisabledThree: false, selectedDay: '', }; onDaySelect = day => { const _selectedDay = moment(day.dateString).format(_format); this.setState({ selectedDay: _selectedDay, isOpen: true, }); }; saveDay = () => { const dots = []; let selected = true; const { isDisabledOne, isDisabledTwo, isDisabledThree, _markedDates, selectedDay, } = this.state; if (isDisabledOne) { dots.push(vacation); } if (isDisabledTwo) { dots.push(massage); } if (isDisabledThree) { dots.push(workout); } if (_markedDates[selectedDay]) { selected = !_markedDates[selectedDay].selected; } const clone = { ..._markedDates }; clone[selectedDay] = { dots, selected }; this.setState({ isOpen: false, _markedDates: clone, isDisabledOne: false, isDisabledTwo: false, isDisabledThree: false, }); }; render() { const BContent = () => ( <Button title="X" onPress={this.saveDay} style={[styles.btn, styles.btnModal]} /> ); return ( <View style={styles.container}> <Calendar markedDates={this.state._markedDates} markingType={'multi-dot'} onDayPress={this.onDaySelect} /> <Modal style={[styles.modal, styles.modal3]} position={'center'} visible={this.state.isOpen} isDisabled={this.state.isDisabled}> <Text style={styles.text}>vacation</Text> <Button title={this.state.isDisabledOne ? 'YES' : 'NO'} onPress={() => this.setState({ isDisabledOne: !this.state.isDisabledOne }) } style={styles.btn} /> <Text style={styles.text}>massage</Text> <Button onPress={() => this.setState({ isDisabledTwo: !this.state.isDisabledTwo }) } title={this.state.isDisabledTwo ? 'YES' : 'NO'} style={styles.btn} /> <Text style={styles.text}>workout</Text> <Button title={this.state.isDisabledThree ? 'YES' : 'NO'} onPress={() => this.setState({ isDisabledThree: !this.state.isDisabledThree }) } style={styles.btn} /> <BContent /> </Modal> </View> ); } } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, });