react 中 setState的兩種寫法、修改部分屬性


react 想要更新視圖只能用 setState( ) 方法 

關於 setState() 這里有兩點需要知道

1. 不要直接更新狀態, 而是使用 setState()

2. 狀態更新是異步的,你如果依靠它們的值來計算下一個狀態不可以直接使用。

1、兩種調用方式

第一種 : 直接 改變 

this.setState({
      msg: "我被改變了"
});

第二種 :通過 setState()傳入一個函數,這種用法 可以借助於 原有的state里的值

this.setState(state => {
  return {
    msg: "hello"
  };
});

2、修改狀態后依據狀態做些操作

第一種:回調函數

this.setState({
      active:true
    },()=>{
      console.log(this.state.active,'2')
})
console.log(this.state.active,'1')

第二種:async / await

  change = async ()=>{
    await this.setState({
      active:true
    })
    console.log(this.state.active,'1')
  }

3、修改某個對象的部分屬性,使用Object.assign()

  change = (pagination, filters, sorter, extra)=>{
    this.setState((state)=>{
      return {
        params:Object.assign(state.params,{
          pageSize: pagination.pageSize,
          pageNum: pagination.current
        })
      }
    })
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM