javascript - 使用路由器 "No overload matches this call"

在进行快照测试之前,我有一个组件工作正常。它说“你不应该在路由器之外使用链接”。然后我用路由器包裹了组件​​,但它不起作用。这是组件:

import React from "react";
import "./Body.css";
import { Link, Router } from "react-router-dom";
const Body: React.FC = () => {
  return (
    <div className="body">
      <Router>
        <Link to="/movies">
          <div className=" body__item">
            <p>MOVIES</p>
          </div>
        </Link>
        <Link to="/series">
          <div className=" body__item">
            <p>SERIES </p>
            <img src="../../../images/placeholder.png" alt="" />
          </div>
        </Link>
      </Router>
    </div>
  );
};

export default Body;

我有 react-router-dom 的@types,所以这不是问题。我还尝试环绕组件。

另外完整的错误是:

没有与此调用匹配的过载。 重载 1 of 2,'(props: RouterProps | Readonly): Router',出现以下错误。 类型 '{ children: Element[]; 中缺少属性 'history'; }' 但在类型'Readonly' 中是必需的。 重载 2 of 2,'(props: RouterProps, context: any): Router',出现以下错误。 类型 '{ children: Element[]; 中缺少属性 'history'; }' 但在类型 'Readonly'.ts(2769) 中需要 index.d.ts(99, 5):此处声明“历史”。 index.d.ts(99, 5):此处声明“历史”。

最佳答案

路由器名称是 BrowserRouter 只需按如下方式更改导入即可。

import { Link, BrowserRouter as Router } from "react-router-dom";

关于javascript - 使用路由器 "No overload matches this call"包装组件时出现 React-Router + Typescript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66188545/

相关文章:

flutter - 调用者没有执行指定操作的权限

sql - 两列上的复合非空约束

javascript - React App - 我的警告窗口出现两次

asp.net - 将具有策略的授权应用于 asp.net core 中命名空间内的所有 Contr

ajax - ASP.NET Core Razor ajax POST 请求数据对象为空

c++ - 自动类型检测是否只查看一个语句

go 1.16 embed - strip 目录名

java - 输出最大分数

python - 条件运算符不匹配

swift - 如何使用 SwiftUI 中的扩展将 Hashable 协议(protocol)添加