【发布时间】:2020-05-11 18:46:34
【问题描述】:
我是 react 新手,正在尝试构建一个简单的 react 应用程序。我想根据当前路由展示一个组件。
index.js
var React = require('react');
var ReactDOM = require('react-dom');
var createReactClass = require("create-react-class");
import { Router, Route, browserHistory, Link } from "react-router";
var About = require("./about");
var Admin = require("./admin");
var App = createReactClass({
render: function() {
return(
<Router history={browserHistory}>
<Route path={"/"} component={RootComponent}></Route>
<Route path={"/about"} component={About}></Route>
<Route path={"/admin"} component={Admin}></Route>
</Router>
);
}
});
// Create a component
var RootComponent = createReactClass({
render: function() {
var currentLocation = this.props.location.pathname;
return(
<div>
<Link to={"/about"}>About</Link>
<Link to={"/admin"}>Admin</Link>
<h2>This is the root component</h2>
</div>
);
}
});
// put component into html page
ReactDOM.render(<App />, document.getElementById("app_root"));
是否可以设置if else 条件以在布局上呈现类似于以下代码的内容?
var RootComponent = createReactClass({
render: function() {
var currentLocation = this.props.location.pathname;
if (currentLocation == "admin") {
return(
<div class="admin_template">
</div>
);
} else {
return(
<div class="home_template">
</div>
);
}
}
});
我想在点击链接时检测路线变化,然后相应地显示模板。
非常感谢任何帮助。谢谢
【问题讨论】:
-
render()函数和其他函数一样;只要它返回有效的 JSX / 组件,你就可以在里面做任何你想做的事情(只是不要改变状态;))还要检查这个:stackoverflow.com/questions/46842117/… -
你应该使用
Switch
标签: javascript html css node.js reactjs