การแทรกข้อมูลลงในแอตทริบิวต์ style จากตัวแปรใน React
ในบทเรียนที่แล้ว เราเขียนออบเจ็กต์โดยตรงใน
แอตทริบิวต์ style เรายังสามารถ
ใช้การแทรกข้อมูลลงในออบเจ็กต์นี้
จากตัวแปรได้ด้วย
ลองเอา React component ของเรา ที่ไม่มีสไตล์ CSS มาดู:
function App() {
return (
<div>
<p>text</p>
<p>text</p>
<p>text</p>
</div>
);
}
ตอนนี้เราจะสร้างตัวแปรและ กำหนดค่าคุณสมบัติ CSS ให้กับพวกมัน มาเริ่มตามลำดับจากสไตล์สำหรับ div กันก่อน
ในไฟล์ component ก่อนคำสั่ง
return เรามาสร้างตัวแปรชื่อ
wd1 และกำหนดค่าให้มันเป็น
'200px':
const wd1 = '200px';
ในลักษณะเดียวกัน เราจะสร้างตัวแปร สำหรับค่าทั้งหมดของคุณสมบัติของ div ของเรา:
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';
และสุดท้ายสำหรับอันสุดท้าย ที่นี่
ต้องการแค่สองตัว ไม่ใช่สาม
ตัวแปร ไม่มีเหตุผลต้องทำซ้ำ
เพราะว่าค่า bold นั้นเรา
มีอยู่แล้วสำหรับย่อหน้าแรก:
const bco1 = 'orange';
const co3 = 'white';
และตอนนี้เราจะแทนที่ตัวแปร
ที่มีค่าสไตล์ต่างๆ ลงไป เริ่มต้น
ทำสำหรับย่อหน้าแรกกันก่อน เราแทรก
ตัวแปร co1 และ fw1
แทนค่าต่างๆ ในออบเจ็กต์:
<p style = {{ color: co1, fontWeight: fw1 }}>
text
</p>
ในลักษณะเดียวกัน เราทำกับ แท็กที่เหลือ
ผลลัพธ์คือโค้ด component ของเรา จะมีลักษณะดังนี้:
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>
);
}
ปรับเปลี่ยนโค้ดโจทย์ปัญหาจากบทเรียนที่แล้ว เพื่อให้ค่าของคุณสมบัติ CSS ถูกเก็บไว้ในตัวแปร