React:react-router-dom Typescript 中不存在 useLocation Hook

Posted

技术标签:

【中文标题】React:react-router-dom Typescript 中不存在 useLocation Hook【英文标题】:React: useLocation Hook doesn't exist in react-router-dom Typescript 【发布时间】:2020-07-11 17:26:51 【问题描述】:

您好,我正在尝试从 react-router-dom "typescript" 导入 useLocation Hook 我找不到它

根据 React Router Documentation 我很确定它存在。

然而在打字稿中它一直告诉我没有名为 useLocation 的导出成员

这是我导入它的方式:

import  useLocation  from 'react-router-dom';

这是我得到的错误:

模块 '"../../node_modules/@types/react-router-dom"' 没有导出成员 'useLocation'.ts(2305)

【问题讨论】:

尝试将@types/react-router-dom 升级到最新版本。 github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/… 你试过import * as reactRouter from "react-router-dom"然后解构useLocation属性吗? 谢谢各位,升级包解决了我的问题 【参考方案1】:

这是一个打字稿解析错误,意味着错误是由包@types/react-router-dom而不是包react-router-dom引发的,请确保更新并重新安装两者。

【讨论】:

【参考方案2】:

我也有同样的挑战,运行以下命令解决了问题

npm i --save-dev @types/react-router-dom 

【讨论】:

【参考方案3】:

确保5.x 版本中同时具有react-router-dom@types/react-router-dom

npm i react-router-dom@5
npm i -D @types/react-router-dom@5

【讨论】:

以上是关于React:react-router-dom Typescript 中不存在 useLocation Hook的主要内容,如果未能解决你的问题,请参考以下文章

react-router-dom v5和react-router-dom v6区别

React-router-dom:链接编译失败

`yarn add react-router-dom` 和 `yarn add @types/react-router-dom` 有啥区别?

React:react-router-dom 详解

React使用react-router-dom配置路由

反应:'重定向'不是从'react-router-dom'导出的