当前位置: 首页 > 知识库问答 >
问题:

×TypeError:无法读取未定义的属性“pathname”

勾安翔
2023-03-14
import React, { Component } from 'react';
import Header from './components/Header';
import Footer from './components/Footer';
import { BrowserRouter as Router, Route } from 'react-router-dom';

import Routes from './routes';


    export default class App extends Component {
      render(){
    
        return(
        <div>
        {this.location.pathname==='/Login' ? null:
        <div>
            <Header/>
            <Routes />
            <Footer />
        </div>
        }
        </div>
        )
      }
    }

Helpe拜托。

共有1个答案

袁宜
2023-03-14

pathname未定义,因为您没有从路由道具中传递的位置道具正确地访问它。您错过了道具部分。

this.location.pathname

您似乎还试图从应用程序读取路由状态。为了使路由道具发挥作用,您需要将应用程序组件包装在react树中更高的路由器中,并将应用程序呈现为路由中,将应用程序与Wisuroter更高的顺序组件包装在应用程序中,或者将路由器呈现在应用程序中,并将页眉和页脚呈现为路由,以便它们可以检查位置。

在应用程序内容周围呈现路由器。将页眉和页脚呈现到Render道具上的路由中,并检查location.pathname并有条件地呈现每个路由。

export default class App extends Component {
  render() {
    return (
      <Router>
        <Route
          render={(props) =>
            location.pathname !== "/Login" ? <Header /> : null
          }
        />
        <Routes />
        <Route
          render={(props) =>
            location.pathname !== "/Login" ? <Footer /> : null
          }
        />
      </Router>
    );
  }
}
export default class App extends Component {
  render() {
    return (
      <Router>
        <Route component={Header} />
        <Routes />
        <Route component={Footer} />
      </Router>
    );
  }
}
const Header = ({ location }) => {
  ...
  return location.pathname !== "/login" ? (
    ... // header UI JSX
  ) : null;
};
 类似资料:
  • 如果函数在组件中,那么一切都很好。如果我把它单独取出并导出到一个组件中,那么我会得到一个错误TypeError:不能读取未定义的属性(读取'reduce')

  • 问题内容: 我试图在ajax回调从REST api接收数据后设置组件的setState。这是我的组件构造函数代码 然后,我有一个如下所示的方法。 现在,这是我执行getAJAX请求的getPosts函数。 我想设置状态,但出现以下错误。 不太清楚是什么原因造成的。如果有人指出我正确的方向,那将真的很有帮助。提前致谢。 问题答案: 还绑定回调函数,以便回调内部指向React Component的上下

  • 我试图使用node.js express web服务器中的@tensorflow/tfjs-node模块。但是,我得到了下面的错误。我不明白为什么我会出现这个错误。我刚刚在node.js服务器中添加了1行代码。我使用“npm install@tensorflow/tfjs-node”完成的安装。可能的问题是什么? null 先谢谢你, var nonMaxSuppressionV3Impl=tf.

  • 我正在尝试联系许多对许多,在两个模式“培训和培训课程”,所以我做了第三个模式“课程”,以尝试关系1对许多。但是我得到了一个错误: null TypeError:无法读取对象上未定义得属性“belongsto”。(c:UsersDellDownloadsGraphql-12.18.2020Graphql-12.18.2020Graphql-12.18.2020ServerAppDatabaseDat

  • 上面的函数返回一个类似“failed”的字符串。但是,当我尝试在其上运行then函数时,它将返回 并且光标指示在之后和。 下面是完整的功能: 更新 下面是函数 我确信将导致一个“failed”字符串。没别的了。

  • 无法显示Barchart。 我有一个包含数据的表,它是可拖动的。在表格旁边我有一个两个dropbox被拖动的表格中的数据可以被拖动到框中。当将数据拖动到框中时,应该会显示条形图。 这是我的家。component.html 这是我的家。Component.TS 这是我的酒吧 在拖放数据时,特定的图表必须显示在Dropbox上。