2016-06-08 28 views
9

Sto usando react e material-ui nel mio progetto e ho trovato un semplice problema che non so come risolvere. Voglio creare un cassetto e impostare la sua altezza in modo che quando si apre, non si apre sulla barra dell'applicazione.materiale-ui cambia l'altezza del cassetto

Non v'è alcun parametro nel componente cassetto per l'altezza, ho anche cercato di ignorare il suo stile e la creazione di l'altezza sull'oggetto stile come questo:

<Drawer style={{height:'90%'}} /> 

Ma non ha funzionato.

L'unico modo in cui posso pensare è modificare il codice del componente Cassetto, ma naturalmente voglio evitarlo.

Qualche idea su come posso definire l'altezza?

+0

hai provato a confezionarlo in un div e modificarne l'altezza? – ZekeDroid

risposta

27

Qui si va:

<Drawer open={this.state.open} containerStyle={{height: 'calc(100% - 64px)', top: 64}}> 
    <MenuItem>Menu Item</MenuItem> 
    <MenuItem>Menu Item 2</MenuItem> 
</Drawer> 
+1

Grazie amico, non posso fare +1 alla tua risposta perché non ho abbastanza rep, lo farò quando sarò in grado di –

+0

Qualche idea su come ottenere zDepth in meno ?? – Zohair

+0

Cheers amico, funziona perfettamente! – stoerebink

3

containerStyle è vietato nella versione 1.0 e superiori

Quindi è necessario l'utilizzo di elementi classi invece

Ecco un esempio di questo non banale case

import {withStyles, createStyleSheet} from 'material-ui/styles' 
const styleSheet = createStyleSheet({ 
    paper: { 
    height: 'calc(100% - 64px)', 
    top: 64 
    } 
}) 
class CustomDrawer extends Component { 
    ... 
    render() { 
    const classes = this.props.classes 
    return (
     <Drawer 
     classes={{paper: classes.paper}} 
     > 
     ... 
    ) 
} 

CustomDrawer.propTypes = { 
    classes: PropTypes.object.isRequired 
} 

export default withStyles(styleSheet)(CustomDrawer) 
+0

'Paper' è un figlio di Dock, l'altezza dovrebbe essere su 'drawer' key classes = {{docked: classes.paper}} ' –