Рендеринг компонента в другом контейнере при нажатии кнопки

#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. Пожалуйста, не могли бы вы перефразировать свой вопрос?