Tietojen lisääminen style-attribuuttiin muuttujista Reactissa
Edellisessä oppitunnissa kirjoitimme objektin suoraan
attribuuttiin style. Voimme myös
käyttää tietojen sijoittamista tähän objektiin
muuttujista.
Otetaan React-komponenttimme ilman CSS-tyylejä:
function App() {
return (
<div>
<p>text</p>
<p>text</p>
<p>text</p>
</div>
);
}
Nyt luomme muuttujia ja annamme niille CSS-ominaisuuksien arvot. Aloitetaan järjestyksessä divin tyyleistä.
Komponenttitiedostossa ennen komentoa
return luomme muuttujan
wd1 ja annamme sille arvon
'200px':
const wd1 = '200px';
Samalla tavalla luomme muuttujat kaikille divimme ominaisuuksien arvoille:
const wd1 = '200px';
const br1 = '2px solid brown';
const pd1 = '10px';
const ta1 = 'center';
Nyt lisätään muuttujat ensimmäiselle kappaleelle:
const co1 = 'orangered';
const fw1 = 'bold';
Toiselle kappaleelle:
const fs1 = 'italic';
const co2 = 'brown';
Ja lopulta viimeiselle. Tähän
tarvitaan vain kaksi, ei kolme
muuttujaa. Ei ole järkeä toistaa,
sillä arvo bold meillä on jo
ensimmäiselle kappaleelle:
const bco1 = 'orange';
const co3 = 'white';
Nyt sijoitamme muuttujat
tyylien arvoilla. Tehdään
tämä ensimmäiselle kappaleelle. Sijoitetaan
muuttujat co1 ja fw1
arvojen tilalle objektissa:
<p style = {{ color: co1, fontWeight: fw1 }}>
text
</p>
Samalla tavalla toimimme muiden tagien kanssa.
Tuloksena komponenttimme koodi näyttää tältä:
function App() {
const wd1 = '200px';
const br1 = '2px solid brown';
const pd1 = '10px';
const ta1 = 'center';
const co1 = 'orangered';
const fw1 = 'bold';
const fs1 = 'italic';
const co2 = 'brown';
const bco1 = 'orange';
const co3 = 'white';
return (
<div style = {{
width: wd1,
border: br1,
padding: pd1,
textAlign: ta1 }}>
<p style = {{ color: co1, fontWeight: fw1 }}>
text
</p>
<p style = {{ fontStyle: fs1, color: co2 }}>
text
</p>
<p style = {{
backgroundColor: bco1,
fontWeight: fw1,
color: co3 }}>
text
</p>
</div>
);
}
Muokkaa edellisen oppitunnin tehtävän ratkaisun koodia siten, että CSS-ominaisuuksien arvot säilytetään muuttujissa.