> For the complete documentation index, see [llms.txt](https://ploegert.gitbook.io/til/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ploegert.gitbook.io/til/programmy/react/pass-a-function-to-a-usestate-updater.md).

# Pass A Function To A useState Updater

Let's say you have a component with a toggle state:

```javascript
const [toggle, setToggle] = useState(false);
```

You can change the state of the toggle by directly passing a value to `setToggle`.

```javascript
setToggle(true);
console.log(toggle);
//=> true
```

Alternatively, you can pass a function to the updater. This is called a [*functional update*](https://reactjs.org/docs/hooks-reference.html#functional-updates). The updater will call the function with the previous state value and update the state to whatever the function returns.

```javascript
const handleToggle = (prevToggle) => {
  return !prevToggle;
}

console.log(toggle);
//=> true

setToggle(handleToggle);

console.log(toggle);
//=> false
```
