我正在尝试在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>
);
}
}
您能解释一下“正常”组件和类组件之间的可能区别以及为什么出现以下错误。
假设您正在导入Component
的React.Component
正确,尽量组件后去除括号。
应该:
class Portfolio extends Component {
代替:
class Portfolio extends Component () {
如果不是,请替换Component
为React.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。我试图搜索更改,但没有找到有效的解决方案。