3 votes

Comment puis-je créer des onglets personnalisés avec plusieurs étiquettes par onglet dans l'interface matérielle ?

J'utilise material UI, material-ui/Tabs Un exemple de code comme celui-ci...

import React from 'react';
import PropTypes from 'prop-types';
import { withStyles } from 'material-ui/styles';
import AppBar from 'material-ui/AppBar'
import Tabs, { Tab } from 'material-ui/Tabs';
import Typography from 'material-ui/Typography';

const styles = theme => ({
  bigIndicator: {
    height: 5,
  },
});

class BasicTabs extends React.Component {
  state = { value: 0 }

  handleChange = (event, value) => {
    this.setState({ value });
  };

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

    return [
      <AppBar position="static" key="appbar">
        <Tabs 
          classes={{ indicator: classes.bigIndicator }} 
          value={value}
          onChange={this.handleChange}
        >
          <Tab label="T1 Label 1" />
          <Tab label="T2 Label 1" />
          <Tab label="T3 Label 1" />
        </Tabs>
      </AppBar>,
      <div key="tab-content">
        {value === 0 && <Typography>Item One</Typography>}
        {value === 1 && <Typography>Item Two</Typography>}
        {value === 2 && <Typography>Item Three</Typography>}
      </div>
    ]
  }
}

BasicTabs.propTypes = {
  classes: PropTypes.object.isRequired,
};

export default withStyles(styles)(BasicTabs);

Mais je veux ajouter l'étiquette 2 dans chaque onglet pour que cela ressemble à ceci... enter image description here

C'est mon Exemple codesandbox https://codesandbox.io/s/xjj5j6284

Merci d'avance.

7voto

Ryan Cogswell Points 43517

L'étiquette peut être aussi complexe que vous le souhaitez. Par exemple :

          <Tab
            label={
              <React.Fragment>
                T1 Label 1<br />
                <span style={{ fontSize: "smaller" }}>T1 Label2</span>
              </React.Fragment>
            }
          />

Edit Material UI - Customizing tab indicator

Je tiens à m'assurer que vous êtes conscient que vous utilisez une très ancienne version de Material-UI. Les importations de la version actuelle commencent par "@material-ui/core" au lieu de "material-ui".

Ainsi, au lieu de

import { withStyles } from "material-ui/styles";
import AppBar from "material-ui/AppBar";
import Tabs, { Tab } from "material-ui/Tabs";
import Typography from "material-ui/Typography";

vous devriez avoir

import { withStyles } from "@material-ui/core/styles";
import AppBar from "@material-ui/core/AppBar";
import Tabs from "@material-ui/core/Tabs";
import Tab from "@material-ui/core/Tab";
import Typography from "@material-ui/core/Typography";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X