React router error Не удается прочитать свойство 'forEach' из неопределенного - PullRequest
1 голос
/ 30 сентября 2019

При обновлении реакции с версии 15 на версию 16 я получил эту ошибку:

Невозможно прочитать свойство 'forEach' из неопределенного в компоненте PrivateRoute.

Пакет JSON показываетэти версии:

"react": "^16.10.1",
"react-dom": "^16.10.1",
"react-router": "^5.1.1",
"react-router-dom": "^5.1.1",
"react-router-redux": "*"

Вот код компонента для просмотра:

Я попытался установить eslint и eslint-loader, поскольку обнаружил, что это может быть проблемой, но не повезло

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

const PrivateRoute = ({
    component: Component,
    Authenticated,
    AdminPage,
    Admin,
    ...props
}) => (
    <Route
        {...props}
        render={props => {
            if (AdminPage) {
                if (Authenticated && Admin) {
                    return <Component {...props} />;
                } else {
                    return (
                        <Redirect
                            to={{
                                pathname: "/",
                                state: { from: props.location }
                            }}
                        />
                    );
                }
            } else {
                if (Authenticated) {
                    return <Component {...props} />;
                } else {
                    return (
                        <Redirect
                            to={{
                                pathname: "/login",
                                state: { from: props.location }
                            }}
                        />
                    );
                }
            }
        }}
    />
);

export default PrivateRoute;


1 Ответ

1 голос
/ 30 сентября 2019

Вот несколько вещей, которые нужно попробовать:

  • Понизить реактивные сценарии до 3.0.1
  • Удалить eslint из devDependencies
  • Удалить package-lock.json,удалите node_module, запустите npm install

Если вы используете пряжу, вы также можете добавить это в package.json:

"resolutions": {
    "eslint-loader": "3.0.2"
}

Дополнительная информация по адресу: https://github.com/facebook/create-react-app/issues/7753 (ошибкаотчет)

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