[英]What is the proper way to use multiple layouts in ReactJS
I am new to React.我是 React 的新手。 I need to use multiple layouts in my project.
我需要在我的项目中使用多个布局。 I searched for a tutorial but there are so many different ways and couldn't find a working example.
我搜索了一个教程,但有很多不同的方法,但找不到一个有效的例子。
Here is my App.js below.下面是我的 App.js。 How can I add the second layout for Login page?
如何为登录页面添加第二个布局?
import React, { Component } from 'react';
import { Route } from 'react-router';
import { Layout } from './components/Layout';
import { Home } from './components/Home';
import { FetchData } from './components/FetchData';
import { Counter } from './components/Counter';
import { Urun } from './components/Urun';
import { Sepet } from './components/Sepet';
import { Urunler } from './components/Urunler';
export default class App extends Component {
displayName = App.name
render() {
return (
<Layout>
<Route exact path='/' component={Home} />
<Route path='/counter' component={Counter} />
<Route path='/fetchdata' component={FetchData} />
<Route path='/Urun' component={Urun} />
<Route path='/Sepet' component={Sepet} />
<Route path='/Urunler' component={Urunler} />
</Layout>
);
}
}
THIS IS THE ANSWER FROM @Quentin这是@Quentin 的回答
Thanks to @Quentin, he didnt give me the fish but helped me catch the fish.感谢@Quentin,他没有给我鱼,而是帮我钓到了鱼。
This is the App.js这是 App.js
import React, { Component } from 'react';
import { Route } from 'react-router';
import { Home } from './components/Home';
import { FetchData } from './components/FetchData';
import { Counter } from './components/Counter';
import { Urun } from './components/Urun';
import { Sepet } from './components/Sepet';
import { Urunler } from './components/Urunler';
import { Giris } from './components/Giris';
import { Kayit } from './components/Kayit';
export default class App extends Component {
displayName = App.name
render() {
return (
<div>
<Route exact path='/' component={Home} />
<Route path='/counter' component={Counter} />
<Route path='/fetchdata' component={FetchData} />
<Route path='/Urun' component={Urun} />
<Route path='/Sepet' component={Sepet} />
<Route path='/Urunler' component={Urunler} />
<Route path='/Giris' component={Giris} />
<Route path='/Kayit' component={Kayit} />
</div>
);
}
}
This is the Home.js这是 Home.js
import React, { Component } from 'react';
import { Layout } from './Layout';
export class Home extends Component {
displayName = Home.name
render() {
return (
<Layout>
<div>
......
</div>
</Layout>
);
}
}
不管你的Layout
组件是什么,把它放在你想要使用它的路由组件中,而不是放在所有路由周围(包括那些你不想使用它的路由)。
Each route has to be rendered in the target layout.每条路线都必须在目标布局中呈现。 for eg https://www.c-sharpcorner.com/article/multiple-layout-in-react-with-react-router-v4/
例如https://www.c-sharpcorner.com/article/multiple-layout-in-react-with-react-router-v4/
I think you would need to clarify more between terms layout
and component
.我认为您需要在术语
layout
和component
之间进行更多澄清。 I assume you asking how to add component?我假设您问如何添加组件?
You would need first create the file ./components/Login.js您首先需要创建文件 ./components/Login.js
import React, { Component } from 'react';
export default class App extends Component {
render() {
return (
<p>Login</p>
)
}
}
Then use the following to import:然后使用以下命令导入:
import React, { Component } from 'react';
import { Route } from 'react-router';
import { Layout } from './components/Layout';
import { Home } from './components/Home';
import { FetchData } from './components/FetchData';
import { Counter } from './components/Counter';
import { Urun } from './components/Urun';
import { Sepet } from './components/Sepet';
import { Urunler } from './components/Urunler';
// HERE import your component
import { Login } from './components/Login';
export default class App extends Component {
displayName = App.name
render() {
return (
<Layout>
<Route exact path='/' component={Home} />
<Route path='/counter' component={Counter} />
<Route path='/fetchdata' component={FetchData} />
<Route path='/Urun' component={Urun} />
<Route path='/Sepet' component={Sepet} />
<Route path='/Urunler' component={Urunler} />
// HERE make it into a route path
<Route path='/login' component={Login} />
</Layout>
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.