Here’s how you can implement a radio button component in react native.

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

// RadioButton component
const RadioButton = (props) => {
  // Destructure the props
  const { label, isSelected, onSelectionChange } = props;

  return (
    // TouchableOpacity is used to handle the press event
    <TouchableOpacity style={styles.radioButtonContainer} onPress={onSelectionChange}>
      <View style={styles.radioButton}>
        {/* Render a smaller circle inside the outer circle when isSelected is true */}
        {isSelected ? <View style={styles.radioButtonSelected} /> : null}
      </View>
      <Text style={styles.radioButtonLabel}>{label}</Text>
    </TouchableOpacity>
  );
};

// Styles for the RadioButton component
const styles = StyleSheet.create({
  radioButtonContainer: {
    flexDirection: 'row',
    alignItems: 'center',
    marginBottom: 5,
  },
  radioButton: {
    height: 20,
    width: 20,
    borderRadius: 10,
    borderWidth: 1,
    borderColor: '#ACACAC',
    alignItems: 'center',
    justifyContent: 'center',
    marginRight: 5,
  },
  radioButtonSelected: {
    width: 14,
    height: 14,
    borderRadius: 7,
    backgroundColor: '#794F9B',
  },
  radioButtonLabel: {
    fontSize: 14,
    color: '#000',
  },
});

// App component
const App = () => {
  // useState hook to manage the selected option
  const [selectedOption, setSelectedOption] = useState(null);

  // Function to handle selection change
  const handleSelectionChange = (option) => {
    setSelectedOption(option);
  };
  return (
    <View>
      {/* Render the RadioButton component with different labels, and isSelected based on the selectedOption state */}
      <RadioButton
        label="Option 1"
        isSelected={selectedOption === 'option1'}
        onSelectionChange={() => handleSelectionChange('option1')}
      />
      <RadioButton
        label="Option 2"
        isSelected={selectedOption === 'option2'}
        onSelectionChange={() => handleSelectionChange('option2')}
      />
    </View>
  );
};
export default App;

Alternatively, you can use UI libraries such as react-native-paper, restyle (by Shopify), etc.

Need Help With React Native Development?

Work with our skilled React Native developers to accelerate your project and boost its performance.

Hire React Native Developers

Support On Demand!

Related Q&A