首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-Router-4从另一个组件路由

React-Router-4从另一个组件路由
EN

Stack Overflow用户
提问于 2017-04-06 13:46:10
回答 1查看 1.7K关注 0票数 0

可以从另一个组件路由一个组件吗?

因此,通常会像下面这样做

代码语言:javascript
复制
<NavLink to="/link">link</NavLink>
<NavLink to="/anotherLink">link </NavLink>
<Switch>
    <Route exact path="/link" component={linkComponent}/>
    <Route path="/anotherLink" component={anotherLinkComponent}/>
</Switch>

但是,有没有可能在一个组件中使用NavLink,该组件被加载到主组件中,然后从主组件路由?因此,在一个组件中使用NavLink,在主组件中使用Route

导航组件

代码语言:javascript
复制
export default class Nav extends Component {
    render() {
        return (
            <nav className="navigation">
                <ul className="nav-container">
                    <li>
                        <NavLink to="/" className="nav-title">
                            First Page
                        </NavLink>
                    </li>
                    <li>
                        <NavLink to="second-page" className="nav-title">
                            Second Page
                        </NavLink>
                    </li>
                    <li>
                        <NavLink to="third-page" className="nav-title">
                            Third Page
                        </NavLink>
                    </li>
                </ul>
                <div className="nav-decoration">

                </div>
            </nav>
        )
    }
}

App组件

代码语言:javascript
复制
import Nav from 'whateverthepath';

export default class App extends Component {

    render() {
        return (
            <div>
                <Nav/>
                <Switch>
                    <Route exact path="/" component={Firstpage}/>
                    <Route path="/secondpage" component={Secondpage}/>

                </Switch>
            </div>
        )
    }
}

所有适当的React导入都已完成

EN

回答 1

Stack Overflow用户

发布于 2017-04-06 16:27:43

这绝对是可能的,您的示例甚至应该按原样工作。您需要确保的最重要的事情是您的<Route>被呈现为某个点。您的示例之所以能够工作,是因为您在与<Switch>语句相同的<Nav> ()方法中呈现render。如果您只是呈现<Nav>而不呈现switch语句,那么NavLinks将把您带到一个React Router没有被告知的地方。这就是为什么你的<Route>几乎总是在你的最父组件中,以确保它们被呈现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43246652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档