React基本概念1-2(新增元件)
第二階段
開始新增其他react元件
在components下,新增一個檔案 TextDisplay.js
import React, {Component} from 'react'
class TextDisplay extends Component{
}
export default TextDisplay上面是引用react後建造一個空的class後將他輸出
接著我們要在class內寫入東西
import React, {Component} from 'react'
class TextDisplay extends Component{
render() {
return (
<div>
<div> 提醒:</div>
<div> React.js最外層只能有一個div</div>
</div>
)};
}
export default TextDisplay接著在App.js中引用他
試著將TextDisplay.js最外層的div刪掉,會出現錯誤,因為一個元件要有東西包住最外層。
使用state
TextDisplay.js
!!記得重新整理網頁,才會作用(因為這裡是constructor)
再來點選網頁中的input框發現沒辦法更改,原因是我們在input的prop中寫的是value把它改為defaultValue即可
為元件加入方法
接著隨意輸入一個,輸入框都會變為hello字樣
在class中的方法如果有this的話他會不知道this是什麼,所以要在class 的constructor中把該方法綁進來
記得在constructor使用super()後才可用this
1.
2.另一種寫法,是直接在DOM 的onchange中使用bind
接著在render上面寫
3.第三種寫法(ES6的箭頭函數,最方便,因為會直接幫你綁定)
另外如要傳入事件e,記得兩邊()都要寫
好處是不用再用bind
參考:http://egorsmirnov.me/2015/08/16/react-and-es6-part3.html
在class內所有的this都是指到那個class
所以要取得onchange時input內的value必須用e.target ,因為這裡不是DOM
貼上下面程式碼後,在輸入框中輸入,之後觀察console
Last updated
Was this helpful?