当前位置: 首页 > 面试题库 >

反应路由器:TypeError:无法设置未定义的属性“ props”

丁雅懿
2023-03-14
问题内容

我正在尝试在Meteor使用react-router包中设置路由,并且遇到以下问题 TypeError

链接到图像:https :
//postimg.org/image/v0twphnc7/

我在中使用的代码 main.js

import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, IndexRoute, browserHistory } from 'react-router';

// Importing components
import App from './components/app';
import Portfolio from './components/portfolio/portfolio';


//Creating a route
const routes = (
  <Router history={browserHistory}>
    <Route path='/' component={App}>
      <Router path='portfolio' component={Portfolio} />
    </Route>
  </Router>
);


// Loading routes
Meteor.startup(() => {
  ReactDOM.render(routes, document.querySelector('.universe'));
});

我设法确定的问题是,当我将投资组合定义为简单组件时,它可以工作。

const Portfolio = () => {
    return (
        <div className='red'>Portfolio page</div>
    );
}

但是,当我从Component扩展它时,就会出现错误:

class Portfolio extends Component () {
  render() {
    return (
        <div>Portfolio page</div>
    );
  }
}

您能解释一下“正常”组件和类组件之间的可能区别以及为什么出现以下错误。


问题答案:

假设您正在导入ComponentReact.Component正确,尽量组件后去除括号。

应该:

class Portfolio extends Component {

代替:

class Portfolio extends Component () {

如果不是,请替换ComponentReact.Component



 类似资料:
  • 我确实从NYTimes API中获取了数据,并在控制台上记录了它们。我的初始状态是{searchresponse:null},然后设置state the response this.setstate=({searchresponse:response.data});并将其传递给另一个名为ListView_Component的组件。在该组件中,我处理prop的null值。 但是来自API的响应没有推

  • 问题内容: 我在使用React Router时遇到了一些麻烦(我使用的是version ^ 4.0.0)。 这是我的index.js App.js就是任何东西。我在这里发布基本的,因为这不是问题(我相信) 这就是我检查控制台日志时发生的情况 哦,这是package.json,以防万一 我已经在其他地方检查过,但是我没有找到解决方法。 非常感谢你们的耐心和帮助!! 问题答案: 您做错了几件事。 首先

  • 我是一个新的整体反应和非常新的反应路由器。我正在构建一个应用程序,其中显示一个评论列表,当用户单击一张评论卡时,它们将被重定向到显示该卡详细信息的页面。我已经对大部分逻辑进行了编码,但我正在努力实现React路由器。这是我到目前为止的组件。 我不确定我的路线总体编写方向是否正确,在浏览器中,我遇到了以下错误:“TypeError:无法读取未定义的“getCurrentLocation”属性”有人能

  • 问题内容: 我收到以下错误 未捕获的TypeError:无法读取未定义的属性’setState’ 即使在构造函数中绑定了delta之后。 问题答案: 这是由于不受约束。 为了绑定设置在构造函数中: 当前,您正在调用绑定。但是bind返回一个绑定函数。您需要将函数设置为其绑定值。

  • 问题内容: 我设置了渲染组件的路线: 然后在该组件(PageStart)中,我有: 但这会引发错误: 简单调用时传递道具似乎可以正常工作,但在render函数中不行。为什么? 问题答案: 因为您没有将路由器传递的默认道具传递到组件中,例如比赛,历史记录等。 当您编写此代码时: 这意味着组件中没有任何价值。 这样写: 现在将所有值传递给组件。

  • 我所遵循的教程使用的是React-Router 2.0.0,但在我的桌面上,我使用的是4.1.1。我试图搜索更改,但没有找到有效的解决方案。