React Context обновляется только после перенаправлений - PullRequest
0 голосов
/ 06 марта 2020

Я вижу в журналах, что currentUser получает свое значение только после того, как перенаправляет меня в "/". Мне нужно, чтобы «currentUser» обновлялся до того, как его использовать при рендеринге маршрута.

PrivateRoute.js
const PrivateRoute = ({ component: Component, ...rest }) => {
    const { currentUser } = useContext(AuthContext);


    return (
        <Route {...rest} 
        render={routeProps => !!currentUser ? (<Component {...routeProps} />) : (<Redirect to={'/'} />)
        }
        />
    );
};

export default PrivateRoute;


AuthContext.js
import app from "./firebaseConfig";
export const AuthContext = React.createContext();
export const AuthProvider = ({ children }) => {
  const [currentUser, setCurrentUser] = useState(null);

  useEffect(() => {
    app.auth().onAuthStateChanged(setCurrentUser);
  }, []);

  return (
    <AuthContext.Provider value={{ currentUser }}>
      {children}
    </AuthContext.Provider>
  );
};

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