setState theo format hai

Dạng setState hay dùng?

Bình thường các bạn hay dùng setState để tạo state mới dựa theo state hiện tại như sau

handleChange = () => {
  const { val, object } = this.state;
  this.setState({ val: val + 1, object: { ...object, name: 'new name' } })
}

Tuy nhiên react team họ không khuyến khích cách làm như này

Giải pháp là gì

Khi bạn muốn thay đổi state dựa trên state hoặc prop hiện tại thì bạn nên dùng form 2 của setState

handleChange = () => {
  // callback trả về state và prop hiện tại
  this.setState((s, p) => {
    val: s.val + 1,
    object: { ...s.object, name: 'new name' }
  })
}

Comments

Contact for work:Skype
Code from my 💕