Превышено максимальное количество обновлений. Это может произойти, когда многократно вызывается setState внутри componentWillUpdate или componentDidUpdate - PullRequest
0 голосов
/ 13 июня 2019

компонент не обновлялся, компонент обновлялся. Я показываю ошибку при использовании защищенного и закрытого маршрута в ответ. Jsx, помогите мне, используйте этот код в другом шаблоне, он работает нормально

import React, { Component } from "react";
import firebase from "firebase";

import { Route, Redirect, Switch, BrowserRouter } from "react-router-dom";

import { firebaseInitialize } from "./views/Key/Config";
import "./App.scss";

 const loading = () => (
  <div className="animated fadeIn pt-3 text-center">Loading...</div>
 );

// Контейнеры

     const DefaultLayout = React.lazy(() => import("./containers/DefaultLayout"));

// Pages

 const Login = React.lazy(() => import("./views/Pages/Login"));
 const Register = React.lazy(() => import("./views/Pages/Register"));
 const Page404 = React.lazy(() => import("./views/Pages/Page404"));
 const Page500 = React.lazy(() => import("./views/Pages/Page500"));

  class Routes extends Component {
    constructor(props) {
        super(props);
     this.state = {
      user: {}
     };
   }

// прослушиватель состояния пользователя loggedIn или loggedOut

   componentDidMount() {
     this.authListener();
    }

   componentWillMount() {
      firebaseInitialize();
    }

// установить состояние входа пользователя

   authListener() {
     firebase.auth().onAuthStateChanged(user => {
       if (user) {
        this.setState({ user });
        } else {
        this.setState({ user: null });
        }
     });
    }

   render() {
//if user loggedIn false redirect to landing "/"

    const PrivateRoute = ({ component: Component, ...rest }) => (
     <Route
     {...rest}
       render={props =>
       this.state.user ? <Component {...props} /> : <Redirect to="/login" 
           />
          }
        />
      );
//if user loggedIn true redirect to /dashboard

const ProtectedRoute = ({ component: Component, ...rest }) => (
  <Route
    {...rest}
    render={props =>
      !this.state.user ? (
        <Component {...props} />
      ) : (
        <Redirect to="/dashboard" />
      )
    }
  />
);

return (
  <BrowserRouter>
    <React.Suspense fallback={loading()}>
      <Switch>
        <PrivateRoute
          exact
          path="/login"
          name="Login Page"
          component={Login}
        />
        <Route
          exact
          path="/register"
          name="Register Page"
          render={props => <Register {...props} />}
        />
        <Route
          exact
          path="/404"
          name="Page 404"
          render={props => <Page404 {...props} />}
        />
        <Route
          exact
          path="/500"
          name="Page 500"
          render={props => <Page500 {...props} />}
        />

        <ProtectedRoute
          path="/"
          name="Home"
          render={props => <DefaultLayout {...props} />}
        />
      </Switch>
    </React.Suspense>
  </BrowserRouter>
  );
  }
}

экспорт маршрутов по умолчанию; `

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