I want to save state to `localStorage` when a component is unmounted.
This used to work in `componentWillUnmount`.

I tried to do the same with the `useEffect` hook, but it seems state is not correct in the return function of `useEffect`.

Why is that? How can I save state without using a class?

Here is a dummy example. When you press close, the result is always 0.

```js
import React, { useState, useEffect } from "react";
import ReactDOM from "react-dom";

function Example() {
  const [tab, setTab] = useState(0);
  return (
    <div>
      {tab === 0 && <Content onClose={() => setTab(1)} />}
      {tab === 1 && <div>Why is count in console always 0 ?</div>}
    </div>
  );
}

function Content(props) {
  const [count, setCount] = useState(0);

  useEffect(() => {
    // TODO: Load state from localStorage on mount

    return () => {
      console.log("count:", count);
    };
  }, []);

  return (
    <div>
      <p>Day: {count}</p>
      <button onClick={() => setCount(count - 1)}>-1</button>
      <button onClick={() => setCount(count + 1)}>+1</button>
      <button onClick={() => props.onClose()}>close</button>
    </div>
  );
}

ReactDOM.render(<Example />, document.querySelector("#app"));

```

[CodeSandbox](https://codesandbox.io/s/l5zjyyk87)