#javascript #reactjs #react-router
#javascript #reactjs #реагировать-маршрутизатор
Вопрос:
Я использую React и React Router для создания веб-приложения. В настоящее время заголовок является его собственным компонентом и загружается в контейнер домашней страницы с компонентом страницы. Я хочу отрисовывать новый компонент при нажатии кнопки в заголовке внутри компонента страницы
Это контейнер mainpage, который у меня есть прямо сейчас
import React from 'react';
import Page1 from './Page1';
import Page2 from './Page2';
import Page3 from './Page3';
import Page4 from "./Page4";
import {Header} from "../components/Header";
export default class MAINHome extends React.Component {
constructor(props) {
super();
}
render() {
return (
<div>
<Header/>
<Page1/>
<Page2/>
<Page3/>
<Page4/>
</div>
);
}
}
<div id="header" className="container-fluid">
<div className="row">
<div className="col-md-4" id="logo-col">
<img src={require("../assets/LOGO.png")} alt=""/>
</div>
<div className="col-md-8 d-flex justify-content-end" id="nav-col">
<ul>
<li>
<Link to="/trees" id="trees-adopted-nav">
300 TREES ADOPTED
</Link>
</li>
<li>
<a href="#" className="about-us">
ABOUT US
</a>
</li>
<li>
<a href="#" className="about-trees">
ABOUT TREES
</a>
</li>
<li>
<a href="#" className="contact-us">
CONTACT US
</a>
</li>
</ul>
</div>
<Route path="/trees" exact="exact" component={AdoptTrees} />
</div>
</div>
</Router>
Это рендерит компонент внутри самого заголовка, но я хочу, чтобы он отображался вместо всей главной страницы, заменив
<div>
<Header/>
<Page1/>
<Page2/>
<Page3/>
<Page4/>
</div>
Комментарии:
1. Я понятия не имею, какая страница 1… Страница 4 есть, но я бы поставил хорошие деньги, что вы просто продублировали файл четыре раза, когда вам действительно нужен был одностраничный компонент с
<Page pageNumber={2}>...</Page>
обработкой. Тем не менее, глядя на то, как вы используете<Route>
, вы, вероятно, захотите перечитать руководства по React-Router, потому что вы не так объявляете свои маршруты. Это может быть то место, куда вы помещаете<Link>
, но это определенно не то, куда<Route>
идет.2. Пожалуйста, не могли бы вы перефразировать свой вопрос?