2016-04-05 19 views
0

material-ui bietet eine Möglichkeit, nur ein Attribut in dem Stil Requisiten in Material-ui zu ändern den Stil einer Komponente, über die Stil Requisiten zu ändern:ist es möglich,

<Card style={ {display:this.state.show} } > 
    <CardHeader 
     title="Some Card" 
     subtitle="Old" 
    /> 

Aber das wird entfernen Sie alle previous default style für die Karte, ist es möglich, nur ein Attribut in diesem Fall das 'Display' Attribut zu ändern?

Antwort

1

Ja. Da die Stilvorlage ein Objekt akzeptiert, können Sie ein Objekt dynamisch erstellen und dieses Objekt verwenden.

Beispiel:

import objectAssign = require('object-assign'); 

render() { 
    const baseStyle = { color: 'black', fontSize: '20px' }; 
    const cardStyle = objectAssign({}, baseStyle, 
    (this.state.show ? { color: 'red' } : {}); 
    return (
    <Card style={ cardStyle }> 
     <CardHeader ... /> 
    </Card> 
); 
} 
+1

gute Idee, aber ein Problem, mein Problem ist, dass ich keine Ahnung, was die Standardeinstellungen für eine bestimmte Komponente sind, wird nicht dies erfordert, dass ich in 'baseStyle' eine Aufzeichnung der Standardwerte halten ? Und ist es möglich, programmatisch auf die bereits vorhandenen Standardeinstellungen zuzugreifen, anstatt sie zu ersetzen? Ist das möglich? – user22866

+0

In diesem Fall können Sie baseStyle einfach im Aufruf objectAssign entfernen –