Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅显示基于路线更改的react组件?_Javascript_Html_Css_Node.js_Reactjs - Fatal编程技术网

Javascript 如何仅显示基于路线更改的react组件?

Javascript 如何仅显示基于路线更改的react组件?,javascript,html,css,node.js,reactjs,Javascript,Html,Css,Node.js,Reactjs,我是新的反应,并试图建立一个简单的反应应用程序。我想显示基于当前管线的组件 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 = r

我是新的反应,并试图建立一个简单的反应应用程序。我想显示基于当前管线的组件

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"));
我想在单击链接时检测路由更改,然后相应地显示模板


非常感谢您的帮助。谢谢

您可以在
根组件
中使用另一个
开关,类似于您在
应用程序
组件中所做的操作,以基于路由渲染某些组件。

您可以在
根组件
中使用另一个
开关,类似于您在应用程序中所做的操作
App
component,根据路由渲染某些组件。

在index.js中,您只需添加,即可添加其他路由。 在本例中,我认为您需要检测哪个是管理页面,哪个是用户页面,是的,可以设置if-else条件来呈现某些内容,但这是不好的 =>因为我们有反应dom,但我们不使用它

因此,我建议您使用多种解决方案中的一种:

import { Route, Switch } from 'react-router-dom';
const wrappedRoutes = () => (
  <div>
      <Route path="/" component={abc} />
      <Route path="/bcd" component={bcd} />
    </div>
  </div>
);

const Router = () => (
      <Switch>
        <Route path="/admin" component={wrappedRoutes} />
      </Switch>
);
从'react router dom'导入{Route,Switch};
常数wrappedoustes=()=>(
);
常数路由器=()=>(
);
所以,如果你去url管理员,你会得到组件abc
如果您转到url admin/bcd,您将获得组件bcd。

在index.js中,您只需添加,就可以添加另一个路由。 在本例中,我认为您需要检测哪个是管理页面,哪个是用户页面,是的,可以设置if-else条件来呈现某些内容,但这是不好的 =>因为我们有反应dom,但我们不使用它

因此,我建议您使用多种解决方案中的一种:

import { Route, Switch } from 'react-router-dom';
const wrappedRoutes = () => (
  <div>
      <Route path="/" component={abc} />
      <Route path="/bcd" component={bcd} />
    </div>
  </div>
);

const Router = () => (
      <Switch>
        <Route path="/admin" component={wrappedRoutes} />
      </Switch>
);
从'react router dom'导入{Route,Switch};
常数wrappedoustes=()=>(
);
常数路由器=()=>(
);
所以,如果你去url管理员,你会得到组件abc
如果您转到url admin/bcd,您将获得组件bcd。

render()
函数与任何其他函数一样;只要它返回有效的JSX/组件,您就可以在里面做任何您想做的事情(只是不改变状态;)。同时检查:您应该使用
Switch
函数
render()
函数与任何其他函数一样;只要它返回有效的JSX/组件,您就可以在里面做任何您想做的事情(只是不改变状态;)。还要检查:您应该使用
Switch