无法读取 React 中未定义的属性“forEach”

2024-02-13

我想用下一个代码来验证私有路由:

import React from 'react';

import { Route, Redirect } from 'react-router-dom';
import routes from '../../routing/routes';

export default function PrivateRoute({ component: Component, ...rest }) {
    // TODO: user verification
    let user = 1;

    const authComponentResolver = props => {
        const authorizedComponent = <Component {...props} />
        const redirectToAuthComponent = <Redirect to={{ pathname: routes.login.path, state: { from: props.location } }} />

        if (user !== undefined) {
            return authorizedComponent;
        } else {
            return redirectToAuthComponent;
        }
    }

    return (
        <Route {...rest} render={authComponentResolver} />
    );
}

但它会引发下一个错误:

./src/components/auth/private-route.js
TypeError: Cannot read property 'forEach' of undefined

我不明白为什么,但下一个代码有效:

import React from 'react';

import { Route, Redirect } from 'react-router-dom';
import routes from '../../routing/routes';

export default function PrivateRoute(a) {
    // TODO: user verification
    let user = 1;

    const authComponentResolver = props => {
        const authorizedComponent = <a.component {...props} />
        const redirectToAuthComponent = <Redirect to={{ pathname: routes.login.path, state: { from: props.location } }} />

        if (user !== undefined) {
            return authorizedComponent;
        } else {
            return redirectToAuthComponent;
        }
    }

    return (
        <Route {...a} render={authComponentResolver} />
    );
}

有人可以解释一下为什么第一个版本无法编译吗?我认为两个版本都做同样的事情。

这是我调用该组件的方式:

const DashboardRoutes = () => (
    <Switch>
        <PrivateRoute exact path={routes.root.path} component={Dashboard} />
        <PrivateRoute path={routes.dashboard.path} component={Dashboard} />

        <PrivateRoute exact path={routes.persons.path} component={Persons} />
        <PrivateRoute path={routes.personsNew.path} component={NewPerson} />

        <PrivateRoute exact path={routes.branchOffice.path} component={BranchOffices} />
        <PrivateRoute path={routes.personsNew.path} component={NewPerson} />

        <PrivateRoute component={Error404} />
    </Switch >
);

在控制台中我有这个错误:

VM911 main.chunk.js:116 Uncaught Error: Module build failed (from ./node_modules/eslint-loader/dist/cjs.js):
TypeError: Cannot read property 'forEach' of undefined
    at Linter.parseResults (Users/groupon/Proyectos/Uselessscat/reservas-client/node_modules/eslint-loader/dist/Linter.js:121)
    at Linter.printOutput (Users/groupon/Proyectos/Uselessscat/reservas-client/node_modules/eslint-loader/dist/Linter.js:85)
    at cache (Users/groupon/Proyectos/Uselessscat/reservas-client/node_modules/eslint-loader/dist/cacheLoader.js:46)
    at Users/groupon/Proyectos/Uselessscat/reservas-client/node_modules/loader-fs-cache/index.js:122
    at Gunzip.cb (Users/groupon/Proyectos/Uselessscat/reservas-client/node_modules/loader-fs-cache/index.js:47)
    at Gunzip.zlibBufferOnEnd (zlib.js:131)
    at Gunzip.emit (events.js:203)
    at endReadableNT (_stream_readable.js:1145)
    at process._tickCallback (internal/process/next_tick.js:63)
    at Object../src/components/auth/private-route.js (VM911 main.chunk.js:116)
    at __webpack_require__ (VM909 bundle.js:786)
    at fn (VM909 bundle.js:151)
    at Module../src/routing/module-router.js (VM911 main.chunk.js:1098)
    at __webpack_require__ (VM909 bundle.js:786)
    at fn (VM909 bundle.js:151)
    at Module../src/routing/router.js (VM911 main.chunk.js:1226)
    at __webpack_require__ (VM909 bundle.js:786)
    at fn (VM909 bundle.js:151)
    at Module../src/index.js (VM911 main.chunk.js:787)
    at __webpack_require__ (VM909 bundle.js:786)
    at fn (VM909 bundle.js:151)
    at Object.0 (VM911 main.chunk.js:2552)
    at __webpack_require__ (VM909 bundle.js:786)
    at checkDeferredModules (VM909 bundle.js:46)
    at Array.webpackJsonpCallback [as push] (VM909 bundle.js:33)
    at VM911 main.chunk.js:1

但它是难以辨认的:(

Thanks.


如果您正在使用react-scripts版本3.1.2或以上任何一项3.0.1,您可能需要降级到版本3.0.1因为它看起来工作正常。请参阅github问题 https://github.com/facebook/create-react-app/issues/7753

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法读取 React 中未定义的属性“forEach” 的相关文章

随机推荐

  • “等待返回”有什么区别吗? [复制]

    这个问题在这里已经有答案了 有什么区别吗 const foo async gt some other code that uses await return await bar and const foo async gt some oth
  • Gradle - 仅执行单一构建类型

    我在 build gradle 中定义了多种构建类型 在变体窗口中 我选择了构建变体 例如 debugAPI23 我预计只会执行一种构建类型中的代码 但在 Gradle Console 中我可以看到所有构建类型的输出 正如您所看到的 我正在
  • 在同一地址多次放置 new 是否定义明确/合法?

    注意 这个问题的动机是试图提出预处理器黑客技术来生成无操作分配来回答另一个问题 接受新对象的宏 https stackoverflow com questions 7522949 c macro that accent new object
  • 路由的处理程序无效 - Wordpress

    我正在尝试使用类在 WordPress 中创建自定义 REST API 端点 我也用传统的方式做了同样的事情 效果很好 但是 使用类时我收到错误The handler for the route is invalid 代码 class CS
  • 谁能解释一下android中未绑定服务和绑定服务之间的区别

    任何人都可以解释一下android中未绑定服务和绑定服务之间的区别 并解释一下意图服务 Thanks 绑定服务 http developer android com guide components bound services html
  • 制作堆叠矩形而不是列的直方图

    使用以下代码 我得到如下的直方图 x lt rnorm 100 hist x col gray 我该怎么做才能将条形显示为堆叠矩形 通过其轮廓可见 而不是填充颜色的变化 而不是统一的列 每个矩形代表一个频率 例如 1 尽管我希望能够通过参数
  • 使用 dropzone.js 发送附加参数

    我正在尝试添加 dropzone js 并且想通过 file 传递另一个参数 因此我将隐藏输入放入 form 中 我可以上传文件并可以在Java部分读取它 但我无法读取type chooser WebKitFormBoundaryZxF6M
  • 我的上网IP是多少

    我的电脑上安装了两张网卡 一个用于互联网连接 另一个用于与客户端计算机共享互联网 我用这段代码获取我的IP IPHostEntry HosyEntry Dns GetHostEntry Dns GetHostName foreach IPA
  • Mustache Templates可以做模板扩展吗?

    我是小胡子的新手 许多模板语言 例如 Django Jinja 会让你像这样扩展 父 模板 基本 html block content endblock 首页 html extends base html block content h1
  • 如何从 mysql 数据库中删除重复的条目?

    我有一个包含一些 id 标题的表 我想让标题列唯一 但它已经有超过 600k 条记录 其中一些是重复的 有时是几十次 如何删除除一个之外的所有重复项 以便我可以在之后的标题列中添加一个 UNIQUE 键 此命令添加唯一键 并删除生成错误 由
  • Quarkus - SmallRye 反应式消息传递 - RabbitMQ:将消息发送到默认交换

    使用远程过程调用 https www rabbitmq com tutorials tutorial six java html模式 我需要将答案发送到回复队列 即我需要将消息发送到默认交换机 并以队列名称作为路由键 我在 Quarkus
  • JACOB 和 jre 1.7 出现 UnsatisfiedLinkError

    我编写了一个使用 JACOB 访问 iTunes 的程序 它在 Eclipse 中工作正常 但是当我导出它并在命令提示符中运行它时 我收到一个不满意的链接错误 告诉我 jacob 1 17 M2 x86 dll 是不在我的 java lib
  • 如何在 Android Wear 设备上运行 Xamarin.Forms 应用程序

    我怎样才能运行Xamarin Forms Platform Android FormsApplicationActivity在 Android Wear 设备上 电话base OnCreate bundle 在 的里面onCreate我的类
  • Xcode Instruments:泄漏 - 应用程序在启动时崩溃

    Xcode Instruments 泄漏 应用程序在启动时崩溃 该应用程序在设备和模拟器中都会崩溃 什么可能导致应用程序在连接仪器时崩溃 而在使用电缆或通过 Fabric 无线安装时正常工作 Update Launching the All
  • 如何在 Servicestack 中隐藏 Swagger UI 的端点?

    我正在使用 ServiceStack 3 9 59 0 的 Swagger 插件 我的 ServiceStack API 中有一些端点 例如 selfchecknode 我不想在 Swagger UI 中显示它们 是否有一种声明性方式 也许
  • 带有居中标签的堆叠条形图

    我试图 稳健地 将数据标签集中在堆积条形图中 下面给出了一个简单的代码示例和结果 正如您所看到的 数据标签并未真正在所有矩形中居中 我缺少什么 import numpy as np import matplotlib pyplot as p
  • 将幻灯片上传到 YouTube

    如何使用 YouTube 的 API 将照片幻灯片上传到 Youtube 我在这里找不到它 https developers google com youtube 2 0 developers guide protocol uploadin
  • C++17 中已弃用 std::is_literal_type

    根据参考参数 http en cppreference com w cpp 特质std is literal type http en cppreference com w cpp types is literal type在 C 17 中
  • 我应该研究 PTX 来优化我的内核吗?如果是这样,怎么办?

    您是否建议阅读内核的 PTX 代码以进一步优化内核 一个例子 我读到 可以从 PTX 代码中找出自动循环展开是否有效 如果不是这种情况 则必须在内核代码中手动展开循环 PTX 代码还有其他用例吗 你查看过你的 PTX 代码吗 在哪里可以找到
  • 无法读取 React 中未定义的属性“forEach”

    我想用下一个代码来验证私有路由 import React from react import Route Redirect from react router dom import routes from routing routes ex