IT이야기

대응 라우터를 사용하여 사이드바 유지

cyworld 2022. 3. 17. 21:26
반응형

대응 라우터를 사용하여 사이드바 유지

바꾸고 싶다Detail그리고Blog하지만 여전히 간직하고 있다Sidebar나는 아래 코드와 같이 사용하지만 작동하지 않는다.수정하는 것 좀 도와줄래?정말 감사합니다.

const routes = (
        <Switch component={App}>
                <Route exact key="detailpost" path={CelestialSettings.path + 'posts/:slug'} 
                        components={{main: Detail, sidebar: Popular, mainbottom: Categories}} />) } 
                        />
                <Route exact key="listpost" path={CelestialSettings.path} 
                    components={{feature:Featurex, main: Blog, sidebar: Popular, mainbottom: Categories}} />) } 
                    />
        </Switch>
 );

 class App extends React.Component {
    render () {
        const {feature, main, sidebar, mainbottom } = this.props;
        return (
            <div>
                <div className="container">
                    <div className="main-feature" id="main-feature">
                        {feature}
                    </div>
                </div>
                <div id="content" className="site-content">
                    <div className="container">
                        <div className="divcontainer">
                            <div id="po-homepage" className="content-area">
                                {main}
                            </div>
                            <aside id="secondary" className="sidebar widget-area">
                                <div className="popular_post" id="popular_post">
                                    {sidebar}
                                </div>
                            </aside>
                        </div>
                    </div>
                </div>
                <div className="cat-list">
                    <div className="container">
                        <div className="thecategories" id="thecategories">
                            {mainbottom}
                        </div>
                    </div>
                </div>
            </div>
        )
    }
}

ReactDOM.render( 
    (routes),
    document.getElementById('app')
);

여러 경로에서 동일한 사이드바를 유지하려면 사이드바 구성 요소를 Switch 구성 요소와 동일한 수준으로 설정하십시오.대략적인 예:

const routes = (
    <div>
        <YourSidebar>
            {/* ... */}
        </YourSidebar>
        <Switch component={App}>
            <Route ... />
            <Route ... />
            {/* ... */}
        </Switch>
    </div>
);

이렇게 하면 React-Router는 사이드바 구성요소를 다시 렌더링(또는 업데이트)하지 않고 의 내용만 제어한다.<Switch>.

참조URL: https://stackoverflow.com/questions/53306754/keep-sidebar-with-react-router

반응형