2017-06-28 3 views
3

J'utilise le composant de carte this, et je voudrais construire dessus. Plus précisément, j'aimerais modifier la couleur d'arrière-plan des titres. La façon dont je même si bien, il ressemblerait à quelque chose comme ceci:Comment passer le style imbriqué à un composant dans React

<Card title='Produção e reembolso' style={{ 
    ant-card-head: { 
    backgroundColor: '#232323' 
    } 
}} > 
    <div> R$ {productionAmount} </div> 
</Card> 

Cela ne fonctionne pas, comme React pense ant carte-tête est un nom de propriété. Y at-il un moyen de le faire, ou je vais devoir utiliser/créer un composant différent?

Modifier

HTML Rendus ressemble à ce

<div class="ant-card ant-card-bordered"> 
    <div class="ant-card-head"> 
    <h3 class="ant-card-head-title">Produção e reembolso</h3> 
    </div> 
    <div class="ant-card-body"> 
    <div><!-- react-text: 150 --> R$ <!-- /react-text --></div> 
    </div> 
</div> 
+1

ce ant-carte-head' serait 'faire dans ce cas? pourquoi ne pas simplement passer backgroundColor directement? – azium

+0

Hmm, cela pourrait effectivement fonctionner, si j'envoie le 'bodyStyle' avec le fond: blanc – iagowp

+0

Il n'a pas fonctionné, fourmi-carte-tête ont une couleur de fond: la propriété blanche, donc je dois l'écraser – iagowp

Répondre

1

Si vous voulez avoir un objet commun ayant des styles et ramasser des choses à partir de là, vous devez déclarer des choses séparément et utiliser.

const AllStyles = { 
    "ant-card-head": { 
    backgroundColor: '#232323' 
    }, 
    "another-thing": { 
    backgroundColor: '#ff00aa' 
    } 
}; 
<Card title='Produção e reembolso' style={AllStyles["ant-card-head"]} > 
<AnotherElem title='Produção e empréstimo' style={AllStyles["another-thing"]} > 

Si vous voulez juste inline styles seulement pour cet élément que vous faites ce

<Card title='Produção e reembolso' style={{ 
    backgroundColor: '#232323' 
}} > 
+0

Le problème est, le composant de la carte rend cette "fourmi-carte-tête", donc je n'ai pas d'accès direct, et donc je ne peux pas mettre le style dessus. – iagowp

+0

Vous pouvez essayer de le styliser via CSS –

+0

Eh bien oui, mais je ne voulais pas créer 8 classes différentes pour 8 couleurs de titre différentes. C'est ma dernière option, mais je l'ai en tête. Merci quand même – iagowp