当前位置: 首页 > 知识库问答 >
问题:

“react router dom”不包含名为“useParams”的导出

霍鸣
2023-03-14

App.js我有以下路线:

<Route path="/Comp1/:catid">
    <Comp1 />
</Route>

通过单击带有单个参数的链接可以调用此路由:

<Link to={'/Comp1/' + catid}>Comp1 </Link>

参数catid总是有一定的值。

Comp1是定义如下的组件:

import React, { Component } from 'react';
import { useParams } from 'react-router-dom';

export default class Comp1 extends Component {

    componentDidMount() {
        const params = useParams();
        const { catid } = params.catid;
        console.log(catid);
    }

    componentDidUpdate() {

    }

    render() {
        return (
            <div>
                Hello, I am class Comp1
            </div>
        );
    }
};

但现在正在发生的是,在运行时,我得到了以下调试输出:

“react router dom”不包含名为“useParams”的导出

--编辑--

安装的路由器 dom 版本是 4.2.2。

共有1个答案

太叔烨霖
2023-03-14

肯定是版本问题。在这个官方问题中也有讨论。

解决方案:确保您正在使用<code>react router dom@

如果您在安装正确版本的模块时遇到困难,那么这是练习的最佳时机,尤其是如果您不这样做,很可能会一次又一次地发生。

 类似资料:
  • 我必须用Java实现一个日志机制。所以我使用JEE,使用RequestFilter和拦截器。我把所有这些都放在一个叫做日志记录的包中。 我的类是:请求过滤器,响应过滤器和常量 所以我的问题是。因为类名已经存在于包中,所以不记录类名可以吗? 包日志记录和重复日志记录:请求过滤日志记录,响应过滤日志记录,ConstantsLogging

  • 正在寻找旧JSF页面的解决方案。我试图使用contains方法根据另一列是否包含单词red box来呈现组合框。 这一个工作和组合框被禁用。 但是,我也想在值不包含红色框时渲染它们,但随后将启用combox。 这是行不通的。 因此,我如何测试的任何想法都不包含特定的单词。我还尝试了choose test when,但由于第一个表。col4值只是一个空字符串。 有什么想法吗?谢谢。

  • 10.5. 包的匿名导入 如果只是导入一个包而并不使用导入的包将会导致一个编译错误。但是有时候我们只是想利用导入包而产生的副作用:它会计算包级变量的初始化表达式和执行导入包的init初始化函数(§2.6.2)。这时候我们需要抑制“unused import”编译错误,我们可以用下划线_来重命名导入的包。像往常一样,下划线_为空白标识符,并不能被访问。 import _ "image/png" //

  • 我已经用Eclipse创建了一个可运行的jar。在我的项目中,我有一个叫做问卷的文件夹,里面有一些我使用的文本文件。当我运行我的可运行jar时,它不起作用,除非我在与jar相同的文件夹中有文件夹调查表。我尝试了一些我在stackoverflow中读到的解决方案,比如将文件夹调查表添加为源文件夹,也可以从Properties->java build path->Libraries->add clas

  • 问题内容: 从http://cs-fundamentals.com/tech-interview/java/which-java-package-is- imported-by-default.php 在每个Java程序中,可以有一个未命名的程序包,它只是一个没有名称的程序包。如果在编写类定义时省略了package语句,则将类名放入默认包中,该包没有名称。Java编译器会自动导入此软件包。 真的吗

  • Spring BootBOM不包含tomcat dbcp的依赖项。 我有一个Spring MVC项目,其中我使用数据库连接池进行HiberNate ORM连接。这个项目是在Tomcat中部署的。在我的IntelliJ创意开发环境中,我使用了嵌入的Tomcat,通过使用sping-boot-starter-Tomcat。但是sping-boot-starter-Tomcat没有定义对Tomcat-d