Вмъкване на данни в атрибута style от променливи в React

В предишния урок писахме обект директно в атрибута style. Можем също така да използваме вмъкване на данни в този обект от променливи.

Нека вземем нашия React компонент без CSS стилове:

App.jsfunction App() {
  return (
    <div>
      <p>text</p>
      <p>text</p>
      <p>text</p>
    </div>
  );
}

Сега ще създаваме променливи и ще им присвояваме стойности на CSS свойства. Да започнем по ред със стиловете за div.

Във файла на компонента преди командата return ще създадем променлива wd1 и ще й присвоим стойност '200px':

App.jsconst wd1 = '200px';

По подобен начин ще създадем променливи за всички стойности на свойствата на нашия div:

App.jsconst wd1 = '200px';
const br1 = '2px solid brown';
const pd1 = '10px';
const ta1 = 'center';

Сега нека добавим променливи за първия параграф:

App.jsconst co1 = 'orangered';
const fw1 = 'bold';

За втория параграф:

App.jsconst fs1 = 'italic';
const co2 = 'brown';

И накрая, за последния. Тук ще са необходими само две, а не три променливи. Няма смисъл да се повтаряме, тъй като стойността bold вече я има за първия параграф:

App.jsconst bco1 = 'orange';
const co3 = 'white';

А сега ще заместим променливите със стойностите на стиловете. Нека направим това за първия параграф. Вмъкваме променливите co1 и fw1 вместо стойностите в обекта:

App.js<p style = {{ color: co1, fontWeight: fw1 }}>
  text
</p>

По подобен начин ще постъпим с останалите тагове.

В резултат на това нашия код на компонента ще изглежда така:

App.jsfunction 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>
  );
}
Задание 1

Модифицирайте кода на решението на задачата от предишния урок така, че стойностите на CSS свойствата да се съхраняват в променливи.