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区别
`yarn add react-router-dom` 和 `yarn add @types/react-router-dom` 有啥区别?