setstate does not update state code example

Example 1: setstate find opject in state and update

this.setState(prevState => ({
  food: {
    ...prevState.food,           // copy all other key-value pairs of food object
    pizza: {                     // specific object of food object
      ...prevState.food.pizza,   // copy all pizza key-value pairs
      extraCheese: true          // update value of specific key
    }
  }
}))

Example 2: setstate not updating state immediately

myFunction = () => {
  this.props.updateItem(this.state)
}

Example 3: setstate not updating state immediately

this.setState({pencil:!this.state.pencil}, myFunction)