如何在React Native中的RadioGroup中获取所选项目?

时间:2019-01-17 08:39:45

标签: react-native

如何从RadioGroup获取选定的值。

state = {
        gender: '',

        data: [
            {
                label: 'male',
                value: "Male",
            },
            {
                label: 'female',
                value: "Female",
            }
        ],
    }

render() {
        return (

               <View style={styles.radioGroupContainer}>

                        <Text style={styles.textLableStyle}>Select Gender</Text>

                        <RadioGroup style={alignItems = 'flex-start'} 
                                    radioButtons={this.state.data} 
                        onPress={
                            this.onPress
                            } />

                    </View>

               )
         }

注意:选择单选按钮后,我要输入性别变量的值。

2 个答案:

答案 0 :(得分:1)

通过在项目根目录中输入以下命令来安装package

npm i react-native-radio-buttons-group --save

基本用法

import React, { Component } from 'react';
import { Text, View, StyleSheet } from 'react-native';

import RadioGroup from 'react-native-radio-buttons-group';

export default class Vertical extends Component {
  state = {
    data: [
      {
        label: 'Default value is same as label',
      },
      {
        label: 'Value is different',
        value: "I'm not same as label",
      },
      {
        label: 'Color',
        color: 'green',
      },
      {
        disabled: true,
        label: 'Disabled',
      },
      {
        label: 'Size',
        size: 32,
      },
    ],
  };

  // update state
  onPress = data => this.setState({ data });

  render() {
    let selectedButton = this.state.data.find(e => e.selected == true);
    selectedButton = selectedButton ? selectedButton.value : this.state.data[0].label;
    return (
      <View style={styles.container}>
        <Text style={{ fontSize: 18, marginBottom: 50 }}>
          Value = {selectedButton}
        </Text>
        <RadioGroup radioButtons={this.state.data} onPress={this.onPress} />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
});

Output

答案 1 :(得分:0)

使RadioGroup像这样,只给RadioGroup标签。通过输入该代码,您将获得性别状态的值。

<RadioGroup style={alignItems = 'flex-start'} 
    radioButtons={this.state.data} 
    onPress={data => this.setState({gender: data })} />