# Using useState with an object: how to update

> Learn how to update an object in React useState by creating a new object with the spread operator so the component rerenders, and how to remove a property.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2020-10-26 | Topics: [React](https://flaviocopes.com/tags/react/) | Canonical: https://flaviocopes.com/react-usestate-object/

When a state variable defined with useState is an object with properties you add / update, it's somewhat confusing how to update it.

You can't just update the object, or the component won't rerender.

A pattern I found involves creating a temporary object with one property, and use object destructuring to create a new object from the existing 2 objects:

```js
const [quizAnswers, setQuizAnswers] = useState({})

...

const updatedValue = {}
updatedValue[quizEntryIndex] = answerIndex
setQuizAnswers({
  ...quizAnswers,
  ...updatedValue
})
```

The same technique can be used to remove a property:

```js
const copyOfObject = { ...quizAnswers }
delete copyOfObject['propertyToRemove']

setQuizAnswers({
  ...copyOfObject
})
```
