Javascript 如果在索引路径上,则呈现内容
使用react router,并且当前仅当我在索引路径Javascript 如果在索引路径上,则呈现内容,javascript,reactjs,react-router,Javascript,Reactjs,React Router,使用react router,并且当前仅当我在索引路径“/”上时才尝试呈现某些内容,以及其他内容 这就是我到目前为止所想到的,没有出现错误,但它似乎与代码不兼容 var renderContent = function() { return ( <div className="contain"> {this.props.sidebar} <div className="page">
“/”
上时才尝试呈现某些内容,以及其他内容
这就是我到目前为止所想到的,没有出现错误,但它似乎与代码不兼容
var renderContent = function() {
return (
<div className="contain">
{this.props.sidebar}
<div className="page">
{this.props.main}
</div>
</div>
)
}
var renderHomepage = function() {
return (
<div className="homepage">
{this.props.main}
</div>
);
}
var toRender = function() {
if (this.props.path == '/') {
{this.renderHomepage()}
} else {
{this.renderContent()}
}
}
你做错了。您的
renderContent
、renderHomepage
和toRender
是在您的类之外定义的,并且无权访问此.props.path。这些需要在类内部定义。像这样:
export default React.createClass({
renderContent() {
...
}
renderHomepage() {
...
}
toRender() {
if (this.props.path == '/') {
return this.renderHomepage();
} else {
return this.renderContent();
}
}
render() {
return(
<div>
<div className="main-content">
{this.toRender()}
...
export default React.createClass({
renderContent(){
...
}
renderHomepage(){
...
}
托伦德(){
如果(this.props.path=='/')){
返回此.renderHomepage();
}否则{
返回此.renderContent();
}
}
render(){
返回(
{this.toRender()}
...
将渲染函数放入
React.createClass
中应该可以工作。需要更新toRender函数以返回函数。您需要执行此操作。toRender您做错了。您是renderContent
,renderHomepage
和toRender
是在类a之外定义的nd没有访问this.props.path的权限。这些将需要在类内部定义。如下所示:
export default React.createClass({
renderContent() {
...
}
renderHomepage() {
...
}
toRender() {
if (this.props.path == '/') {
return this.renderHomepage();
} else {
return this.renderContent();
}
}
render() {
return(
<div>
<div className="main-content">
{this.toRender()}
...
export default React.createClass({
renderContent(){
...
}
renderHomepage(){
...
}
托伦德(){
如果(this.props.path=='/')){
返回此.renderHomepage();
}否则{
返回此.renderContent();
}
}
render(){
返回(
{this.toRender()}
...
将渲染函数放入React.createClass中应该可以工作。您的toRender函数需要更新才能返回函数。您需要执行此操作。toRender一些路由定义如何?您是否可以将它们也包括在内?将它们编辑到问题中一些路由定义如何?请您加入也包括这些吗?将它们编辑到问题中嗯,我明白你的意思,但我在这里得到一个错误:
super()类外构造函数
哦,我搞砸了,我只是盲目地复制和粘贴,并认为您在扩展React.Component
但您正在使用createClass
删除构造函数应该可以工作是的,我想是的!不过,现在没有错误,但我从toRender()中什么也没有得到
函数。即使它看起来像toRender(){{this.renderHomepage()}},
但是如果我把{this.renderHomepage()}
而不是{this.toRender()}
,正确渲染。哦,看起来你需要更新你的toRender函数来返回其他渲染函数,而不是仅仅执行它们。更新了我答案中的代码。哦,你需要在renderHmm中执行这个。toRender我明白你的意思,但我在这里得到一个错误:super()类外构造函数
哦,我搞砸了,我只是盲目地复制和粘贴,并认为您在扩展React.Component
但您正在使用createClass
删除构造函数应该可以工作是的,我想是的!不过,现在没有错误,但我从toRender()中什么也没有得到
函数。即使它看起来像toRender(){{this.renderHomepage()}},
但是如果我把{this.renderHomepage()}
而不是{this.toRender()}
,正确渲染。哦,看起来您需要更新toRender函数以返回其他渲染函数,而不是仅执行它们。更新了我回答中的代码。哦,您需要在渲染中执行此.toRender
import React from 'react'
export default React.createClass({
render() {
return (
<div className="hero">
</div>
)
}
})
export default React.createClass({
renderContent() {
...
}
renderHomepage() {
...
}
toRender() {
if (this.props.path == '/') {
return this.renderHomepage();
} else {
return this.renderContent();
}
}
render() {
return(
<div>
<div className="main-content">
{this.toRender()}
...