web-dev-qa-db-fra.com

Comment puis-je faire en sorte que les éléments radio d'entrée s'alignent horizontalement en réagissant [matériel-ui]?

Le groupe radio est toujours vertical répertorié dans le matériel-ui. Existe-t-il un moyen de les aligner horizontalement? par exemple. tous les boutons radio sur une seule ligne horizontale.

28
jay.m

Utilisez simplement la propriété row:

<RadioGroup row><Radio /><Radio /></RadioGroup>

RadioGroup hérite de FormGroup donc les propriétés du FormGroup composant sont également disponibles.

20
HydraHatRack

Pour rendre les boutons radio dans une rangée:

<RadioButtonGroup style={{ display: 'flex' }}>

Pour réinitialiser le dimensionnement en fonction du contenu:

<RadioButton style={{ width: 'auto' }} />
23
lambdakris

Pour ceux qui ont encore du mal, utilisez ce style:

const styles = theme => ({
    group: {
        width: 'auto',
        height: 'auto',
        display: 'flex',
        flexWrap: 'nowrap',
        flexDirection: 'row',
    }
});

class MyComponent extends React.Component {

    render() {
        const { classes } = this.props;

        <RadioGroup className={classes.group} ...>
    }

};

export default withStyles(styles)(MyComponent);
3
Borzh

Je ne peux pas encore commenter, mais pour ajouter à ce que @lambdakris a dit: Vous devrez peut-être également ajouter flexDirection: 'row'. La façon la plus simple d'apporter ces modifications au lieu d'utiliser les styles en ligne consiste à ajouter votre CSS à l'objet et à la classe de styles que material-ui utilise déjà.

const styled = theme => ({
 formControl: {
                margin: theme.spacing.unit * 3,
                width: "100%", //parent of radio group
              },
       group: {
               flexDirection: 'row',
               justifyContent: 'space-around',
               }
             });
...........
<RadioButtonGroup className={classes.group}>
1
noxasaxon

Ajoutez simplement le prop ( row = {true} sur le contrôle RadioGroup.

 <RadioGroup
      aria-label="Location"
      name="location"
      className={classes.group}
      value={location}
      onChange={handleChange}
      row={true}
      >
         <FormControlLabel value="company" control={<Radio />} label="Company" />
         <FormControlLabel value="home" control={<Radio />} label="Home" />
         <FormControlLabel value="other" control={<Radio />} label="Other" />
 </RadioGroup>
1
NuOne