反应路由器链接打字稿错误

Posted

技术标签:

【中文标题】反应路由器链接打字稿错误【英文标题】:react-router Link typescript error 【发布时间】:2017-11-09 06:40:26 【问题描述】:

我刚开始在我的 React 项目中添加 TypeScript,我无法解决这个错误:

import Link from 'react-router';
Module '"/Users/.../node_modules/@types/react-router/index"' has no exported member 'Link'.

Link 组件存在于 react-router 中(代码正在运行),但 TypeScript 无法识别它。我添加了@types/react-router,它似乎没有实现Link。有什么想法吗?

摘自我的package.json

"@types/react": "^15.0.25",
"@types/react-dom": "^15.5.0",
"@types/react-router": "^4.0.11",
"@types/reactstrap": "^4.3.4",

...

"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-router": "^3.0.2",
"reactstrap": "^4.2.0"

...

"typescript": "^2.3.3",

【问题讨论】:

什么版本的 react-router? 帖子已更新使用的版本 你的 @types/react-router 需要是 V3 才能匹配 react-router 【参考方案1】:

你有 react-router 第 3 版,但 @types 包适用于第 4 版。react-router 的第 4 版将很多库移到 react-router-dom 包中,这就是它们的类型不在 @987654323 中的原因@ v4 包。

你应该删除不正确的类型包:

npm un @types/react-router

然后安装正确的类型:

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

【讨论】:

我宁愿将路由器版本升级到 v4,而不是降级 @types/react-router 版本。然后import Link from 'react-router-dom' 也能正常工作。谢谢你的帮助:)

以上是关于反应路由器链接打字稿错误的主要内容,如果未能解决你的问题,请参考以下文章

用打字稿反应路由器

反应路由器/反应查询不会取消/发出导航请求 - 反应/打字稿

路由器道具和自定义道具与打字稿反应路由器dom用于功能组件

使用打字稿创建自定义反应路由组件。类型上不存在属性“路径”... RouteProps

与打字稿反应:“历史”类型上不存在属性“推送”

打字稿路由器导航()