Защищенный маршрут перенаправляется до получения ответа API - PullRequest
0 голосов
/ 15 апреля 2020

Я использую защищенный маршрут, чтобы перенаправить пользователя на страницу подписки, если подписка закончена. Но Route не ждет ответа API, чтобы прибыть.

const ProtectedRoute = ({ component: Component, ...rest }) => {
  const { subscriptionData = {} } = useContext(AppContext) || {};
  return (
    <Route
      render={(props) => {
        if (subscriptionData && subscriptionData.active) {
          return <Component {...props} />;
        }
        return <Redirect to={`${ROUTE_PREFIX}/settings/billing`} />;
      }}
      {...rest}
    />
  );
};

Вызов API происходит в действии -

export const getSubscription = () => async (dispatch) => {
  const url = `/subscription/`;
  await handleAjaxCalls(dispatch, 'GET', url, null, GET_SUBSCRIPTION);
};

Вызов API выполняется из файла useEffect() из App.js. Когда происходит вызов API, subscriptionData пусто {}, перенаправление происходит на страницу ${ROUTE_PREFIX}/settings/billing. Любая помощь, чтобы ограничить это будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...