React: can you use setState with existing state object?

后端 未结 3 502
盖世英雄少女心
盖世英雄少女心 2021-01-28 23:09

Lets say I have a React component that has a \"state\" with 10 fields:

this.state = {
    field1: 1,
    field2: 2,
    ... other fields
    something: \'a\'
};
         


        
3条回答
  •  萌比男神i
    2021-01-28 23:49

    NEVER mutate this.state directly, as calling setState() afterwards may replace the mutation you made. Treat this.state as if it were immutable.

    use Object.assign for clone object

    const newState = Object.assign({}, this.state, {
      something: 'b'
    })
    
    this.setState(newState)
    

    Or you can merge current state:

    this.setState({
      something: 'a',
      something2: 'b', 
    })
    

提交回复
热议问题