TypeError: Cannot read property 'key' of undefined

TypeError: Cannot read property 'key' of undefined

我正在尝试使用 react 和 react-pose 来制作一个路线系统,用于动画路线和解析位置对象 return 我遇到了一个错误,你能帮帮我吗??这是 Routecontainer

中错误的代码
    import React, { Component } from "react";
import {BrowserRouter, Route, NavLink} from "react-router-dom";

import "./App.css";
import HomeComponent from "./Components/HomeComponent"
import ContactComponent from "./Components/ContactComponent"
import AboutComponent from "./Components/AboutComponent"
import NavBar from "./Components/NavigationBar"
import posed, {PoseGroup} from "react-pose";


const RouteContainer = posed.div({
    enter: { opacity: 1, delay: 300, beforeChildren: true },
    exit: { opacity: 0 }
});

class App extends Component {

  render() {
      let {location} = this.props;
    return (
        <BrowserRouter>
           <div>
               <NavBar/>
               <PoseGroup>
                   <RouteContainer key={location.key}>
                       <switch location={location}>
                           <Route path="/" component={HomeComponent}/>
                           <Route path="/About" component={AboutComponent}/>
                           <Route path="/Contact" component={ContactComponent}/>
                       </switch>
                   </RouteContainer>
               </PoseGroup>
           </div>
        </BrowserRouter>
    );
  }
}

export default App;

您正在尝试访问路由组件之外的位置对象。由于您在 App 组件内使用 <BrowserRouter>,因此 HomeComponentAboutComponentContactComponent 将可以访问位置对象,但不能访问 <App />

您可以阅读更多关于 react-router 在何处提供位置对象的信息 here

您可以通过创建一个 returns 以下内容的包装器组件来解决此问题:

return (
   <BrowserRouter>
     <Route path="/" component={App} />
   </BrowserRouter>
);

然后您可以从 <App /> 中删除 <BrowserRouter> 位 零件。路径 / 将匹配所有路由,因为 exact={true} 未作为道具传递。