reverse

const PrivateRoute = ({
  component: Component,
	redirect: Redirect,
  from,
  to,
  ...props
}) => {
  const { userInfo } = useUser();
  return (
    <Route
      {...props}
      render={props =>
        !reverse ? userInfo.token ? (
          <Component {...props} />
        ) : (
          <Redirect
            to={{
              pathname: to,
              state: { from },
            }}
          />
        ) : userInfo.token ? (
          <Redirect
            to={{
              pathname: to,
              state: { from },
            }}
          />
        ) : (
					<Component {...props} />
          
        )
      }
    />
  );
};

<PrivateRoute component: redirect: from: to: >
return (
	
)
<Route path="/signup" exact component={SignUpPage}>
            {hasAuth ? (
              <Redirect
                to={{
                  pathname: '/',
                  state: {
                    from: '/signup',
                  },
                }}
              />
            ) : (
              <SignUpPage />
            )}
          </Route>

💡 결론 → Route 태그를 2가지로 추상화하고 경우에 따라 달리 적용한다.