javascript - Typescript 不允许我在 BrowserRouter 中使用历史记录
问题描述
试验反应,我决定测试打字稿。
代码:
import { BrowserRouter } from 'react-router-dom'
import history from './utilities/history'
ReactDOM.render(
<BrowserRouter history={history}>
<App />
</BrowserRouter>,
document.getElementById('root')
)
历史.js:
import { createBrowserHistory } from 'history'
export default createBrowserHistory()
错误:
类型'{孩子:元素;历史:历史;}' 不可分配给类型 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly<{ children?: ReactNode; }>'。类型“IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly<{ children?: ReactNode; 上不存在属性“历史记录” }>'.ts(2322)
包.json:
@types/react-router-dom": "^4.3.4",
react-router-dom": "^5.0.1",
在没有打字稿的情况下做完全相同的事情时,代码就可以工作。我不明白为什么会发生这种情况,有人有答案吗?
解决方案
BrowserRouter
不接受名为history
. 见这里:https ://reacttraining.com/react-router/web/api/BrowserRouter 。有一个Router
通用的低级接口,它有一个history
道具,但它看起来不像BrowserRouter
自己接受它。所以你可以考虑换成使用Router
.
有关更多信息,请参阅此答案:https ://stackoverflow.com/a/45849608/10326373
推荐阅读
- sql - 用于模糊匹配重复数据删除的 SQL
- javascript - 在 Promise 中等待异步函数
- ios - xamarin.ios 中的 sqlite 损坏异常
- python - 使用 Selenium 保存在浏览器中打开的 pdf
- c# - Cariablevalue 更改为我从未分配过的新值
- php - 是否可以在 Laravel 的同一个控制器上同时使用 auth 和 auth:api 中间件?
- html - 游戏的正确 ARIA 属性
- python - 为什么我在 GAN 的训练鉴别器和生成器中得到 nan 损失值?
- docker - 具有 docker 文件支持的 Visual Studio - 没有这样的文件或目录
- cmd - 使用 Windows 批处理列出比另一个文件更新的文件