iT邦幫忙

2022 iThome 鐵人賽

0
自我挑戰組

30 天線上自學前端系列 第 32

[Day 32] [React] React 行內樣式 (Inline styles)

  • 分享至 

  • xImage
  •  

今天的課程是要用 JSX 來設定 HTML 元素的 style 屬性。

以往要在 HTML 裡面引用 CSS 的 property & value,可以在 class 裡面打上 style 就可以控制 h1 字的顏色:


<h1 style="color: red"> Hello </h1>

不過在 ReactDOM.render 裡面這樣就會報錯:

×
Error
The style prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.
in h1 (at src/index.js:10)
in div (at src/index.js:9)

OK~ 原因很明顯,因為我們傳送出去的 style="color: red"style= 來說這是 string,但在 JSX 裡面,他想要用 value 來控制 style 這個屬性(attribute)。

在 JavaScript 裡面,value 長得像這樣:


{color: "red", key: "value" ......}

所以這時改成這樣,回報的錯誤就會被解決了:


<h1 style={{color:"red"}}>HOHOHOHOOOOOOO</h1>

接著可以做更複雜的 styling 設定,像是用變數來控制 style:


const customStyle = {
  color: "red",
  fontSize: "20px",
  border: "1px solid black"
};

ReactDOM.render(
  <h1 style={customStyle}>Hello World!</h1>,
  document.getElementById("root")
);

使用這樣的方式來控制 styling 的好處是之後若有 event listener 的需求時,可以直接用 變數名稱.color = "blue"; 來控制想要變化的 value。


上一篇
[Day 31] [React] JSX 屬性(attributes)& styling React Elements 簡單介紹
下一篇
[Day 33] [React] React Styling 練習
系列文
30 天線上自學前端72
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言