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