爲React綁定事件,並修改state中的值

import React from 'react'

export default  class ClickS extends React.Component {
  constructor () {
    super()
    this.state= {
      msg: '123'
    }
  }
  render () {
    return <div>
      <button onClick={()=>this.show()}>按鈕</button>
      <h2>{this.state.msg}</h2>
    </div>
  }
  show () {
    console.log(this)
    this.setState({
      msg: '222'
    })
  }
}

  

 也能夠這麼寫javascript

<button onClick={this.show.bind(this)}>按鈕</button>

  

show () {
    console.log(this)
    this.setState({
      msg: '222'
    }, () => {
      console.log(this.state.msg) // 更新後的值222
    })
    console.log(this.state.msg) // 123
  }

  

 

 

 

 

   注意:java

  在React中想爲state中的數據從新賦值,不要使用this.state.xxx = 值。應該使用React提供的this.setState({鍵名:值})來進行修改。react

  若是this.state有多個值,而只對其中一個進行修改,並不會影響其餘的值。應setState只會把對應state狀態值更新,而不會覆蓋其餘的state狀態值。
異步

    

 

     

 

 

 

        同時,this.setState方法的執行是異步的。因此想要獲取最新的狀態值。須要經過回調函數。函數

相關文章
相關標籤/搜索