Reactjs React.js为具有不同数据的相同组件生成动态路由

Reactjs React.js为具有不同数据的相同组件生成动态路由,reactjs,react-router,Reactjs,React Router,我有以下routes.jsx: ReactDOM.render(( <Router> <Route component={Wrapper} > <Route path="/" component={Home} /> <Route path="projects" component={Projects} /> <Route path="project

我有以下routes.jsx:

ReactDOM.render((
    <Router>
        <Route component={Wrapper} >
            <Route path="/" component={Home} />
            <Route path="projects" component={Projects} />
            <Route path="projects/Margam" component={Margam} />
            <Route path="projects/Margam2" component={Margam2} />
            <Route path="projects/Margam3" component={Margam3} />
        </Route>
    </Router>
), document.getElementById('app'));
ReactDOM.render((
),document.getElementById('app');
Margam、Margam2和Margam3是相同的组件,但数据不同。这本质上是一个具有相同设计但不同内容的项目列表

是否可以动态生成传递不同数据但始终使用相同组件的路由

玛加姆:

import React from 'react';

import Video from './video.jsx';

class Margam extends React.Component {
  render () {
    return (
        <div>
            <h2>Margam</h2>
            <Video />
        </div>
    );
  }
}

export default Margam;
从“React”导入React;
从“/Video.jsx”导入视频;
类Margam扩展了React.Component{
渲染(){
返回(
马加姆
);
}
}
出口违约保证金;
Margam2:

import React from 'react';

import Video from './video.jsx';

class Margam extends React.Component {
  render () {
    return (
        <div>
            <h2>Margam 2</h2>
            <Video />
        </div>
    );
  }
}

export default Margam2;
从“React”导入React;
从“/Video.jsx”导入视频;
类Margam扩展了React.Component{
渲染(){
返回(
玛加姆2号
);
}
}
导出默认保证金2;

您可以这样做:

<Route component={Wrapper} >
     <Route path="/" component={Home} />
     <Route path="projects/:id" component={Projects} />
</Route>

然后在项目组件中,您可以使用{this.props.params.id}访问id,并根据该id显示不同的组件

大概是这样的:

render() {
    let Margam = (this.props.params.id == "margam") ? <Margam /> : "";
    let Margam2 = (this.props.params.id == "margam2") ? <Margam2 /> : "";

    return (
        <div>
            {Margam}
            {Margam2}
        </div>
    );
}
render(){
让Margam=(this.props.params.id==“Margam”)?:“”;
让Margam2=(this.props.params.id==“Margam2”)?:“”;
返回(
{Margam}
{Margam2}
);
}

希望这有帮助

您可以这样做:

<Route component={Wrapper} >
     <Route path="/" component={Home} />
     <Route path="projects/:id" component={Projects} />
</Route>

然后在项目组件中,您可以使用{this.props.params.id}访问id,并根据该id显示不同的组件

大概是这样的:

render() {
    let Margam = (this.props.params.id == "margam") ? <Margam /> : "";
    let Margam2 = (this.props.params.id == "margam2") ? <Margam2 /> : "";

    return (
        <div>
            {Margam}
            {Margam2}
        </div>
    );
}
render(){
让Margam=(this.props.params.id==“Margam”)?:“”;
让Margam2=(this.props.params.id==“Margam2”)?:“”;
返回(
{Margam}
{Margam2}
);
}

希望这有帮助

我会试一试,让你知道。谢谢,我会试一试,让你知道的。谢谢