gpt4 book ai didi

javascript - Typescript 不允许我在 BrowserRouter 中使用历史记录

转载 作者:行者123 更新时间:2023-11-30 13:54:21 25 4
gpt4 key购买 nike

尝试使用 React,我决定测试 typescript 。

代码:

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()

错误:

Type '{ children: Element; history: History; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly<{ children?: ReactNode; }>'. Property 'history' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly<{ children?: ReactNode; }>'.ts(2322)

package.json:

@types/react-router-dom": "^4.3.4",
react-router-dom": "^5.0.1",

当不使用 typescript 做完全相同的事情时,代码就可以工作了。我不明白为什么会这样,有人有答案吗?

最佳答案

BrowserRouter 不接收名为 history 的属性。看这里:https://reacttraining.com/react-router/web/api/BrowserRouter .有一个 Router 通用低级接口(interface),它有一个 history 属性,但它看起来不像 BrowserRouter 本身接受它。所以你可以考虑换成使用 Router

有关更多信息,请参阅此答案:https://stackoverflow.com/a/45849608/10326373

关于javascript - Typescript 不允许我在 BrowserRouter 中使用历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57594535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com