Как использовать React Hooks для установки состояния только на любой первой странице, которую посетил пользователь? - PullRequest
0 голосов
/ 04 мая 2019

Я изучаю React Hooks, и мне нужно установить состояние самой первой страницы, которую посещает пользователь, и оно должно сохраняться.

Сейчас я делаю так:

const Routes = () => {
  const [state, dispatch] = useContext(StoreContext);
  useEffect(async () => {
    const rates = await updateRates();
    dispatch({ type: "UPDATE_RATE", payload: rates });
  }, []);

  return (
    <BrowserRouter>
      <Route path="/" component={favicon} />
      <Route path="/" component={navbar} />
      <Switch>
        <Route exact path="/" component={Main} />
        <Route path="/signin" component={SignIn} />
        <Route path="/signup" component={SignUp} />
        <PrivateRoute path="/app" component={() => <h1>App</h1>} />
        <Route path="*" component={() => <h1>Page not found</h1>} />
      </Switch>
    </BrowserRouter>
  );
};

Это в моем routes.js файле.Однако это заставляет состояние обновлять каждую вторую страницу, которую посещает пользователь.Например, если пользователь посещает Main, затем SignIn, состояние обновляется при рендеринге Main, а затем снова обновляется при рендеринге SignIn.

Я попытался вставить в свой файл App.js,однако это не сработало.

Заранее спасибо!

...