react-router链接打字稿错误

soy*_*wod 7 typescript ecmascript-6 reactjs react-router

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

import {Link} from 'react-router';
Module '"/Users/.../node_modules/@types/react-router/index"' has no exported member 'Link'.
Run Code Online (Sandbox Code Playgroud)

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",
Run Code Online (Sandbox Code Playgroud)

Ale*_*ung 10

你有react-router版本3,但版本4的@types包.refer-router的版本4将很多库移动到react-router-dom包中,这就是为什么他们的类型不在@types/react-routerv4包中.

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

npm un @types/react-router
Run Code Online (Sandbox Code Playgroud)

然后安装正确的类型:

npm i --save-dev @types/react-router@3
Run Code Online (Sandbox Code Playgroud)

  • 而不是降级@ types/react-router版本,我更喜欢将我的路由器版本升级到v4.那么来自'react-router-dom'的`import {Link}也可以.谢谢你的帮助:) (5认同)