【问题标题】:Typescript does not allow me to use history in BrowserRouterTypescript 不允许我在 BrowserRouter 中使用历史记录
【发布时间】:2019-12-26 21:42:16
【问题描述】:

用 react 做实验,我决定测试 typescript。

代码:

import { BrowserRouter } from 'react-router-dom'
import history  from './utilities/history'

ReactDOM.render(
  <BrowserRouter history={history}>
    <App />
  </BrowserRouter>,
  document.getElementById('root')
)

history.js:

import { createBrowserHistory } from 'history'

export default createBrowserHistory()

错误:

类型'{孩子:元素;历史:历史; }' 不可赋值 输入'IntrinsicAttributes & IntrinsicClassAttributes & Readonly & Readonly'。 类型“IntrinsicAttributes &”上不存在属性“历史” IntrinsicClassAttributes & Readonly & Readonly'.ts(2322)

package.json:

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

在没有打字稿的情况下做完全相同的事情时,代码就可以工作。 我不明白为什么会发生这种情况,有人有答案吗?

【问题讨论】:

    标签: javascript reactjs typescript react-router


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-10-15
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      • 2021-08-24
      • 2018-06-29
      • 2021-09-02
      相关资源
      最近更新 更多