📌  相关文章
📜  反应路由器 dom props.history 未定义 - Javascript (1)

📅  最后修改于: 2023-12-03 15:07:24.855000             🧑  作者: Mango

反应路由器 dom props.history 未定义 - Javascript

这个问题通常出现在使用React Router时,当您的组件需要使用props.history时会出现该错误。这有可能是因为您没有正确地将history对象传递给您的组件,或者可能是由于您在没有withRouter修饰器的情况下尝试访问history对象。

下面是一些可能的解决方案:

确认是否正确地传递了history对象

如果您的组件是在一个Route中定义的,那么React Router会将history对象作为props传递给该组件。但是,如果您的组件是在Route中渲染时使用render函数定义的,那么您需要显式地将history对象作为参数传递给该函数并将其传递给您的组件。

<Route
  path="/example"
  render={props => <ExampleComponent {...props} history={props.history} />}
/>
确认您是否使用了withRouter修饰器

如果您的组件不是在Route中定义的,那么您需要使用withRouter修饰器来获取history对象。请确保您按以下方式导出组件:

import { withRouter } from "react-router-dom";

class ExampleComponent extends React.Component {
  // ...
}

export default withRouter(ExampleComponent);

现在,您的组件将具有historylocationmatch属性。

确认您是否正确地导入了React Router

最后,请确保您正确地导入了react-router-dom库。您可以按以下方式导入它:

import { BrowserRouter as Router, Route, Switch } from "react-router-dom";

如果您还是遇到了props.history未定义的问题,请尝试在Stack OverflowReact Router文档上搜寻解决方案。