反应路由器匹配错过

时间:2017-02-21 08:43:45

标签: reactjs react-router

使用Match Miss组件的react-routerRouter组件有什么好处?我似乎无法在react-router docs中找到有关此内容的任何文档。

通过查看react-universally

,我可以更详细地查看https://github.com/ctrlplusb/react-universally样板文件。

2 个答案:

答案 0 :(得分:40)

<Match><Miss>是React Router v4 alpha版本中的组件。

在测试版中,<Match>已重命名为<Route>(其道具已更改,以便pattern现在为pathexactly为{{1} }})。 exact组件已完全删除。相反,您应该使用<Miss>语句,该语句只会呈现匹配的第一个<Switch>(或<Route>)。您可以添加无路径组件作为<Redirect>路由的最后一个子组件,并且当前面的<Switch>没有匹配时它将呈现。

您可以查看API documentation了解详情。

<Route>

答案 1 :(得分:1)

要添加到上一篇文章,您将在react-router-dom中找到此信息。它不再位于react-router核心库中。

这是我找到的用于反应路由的模式。基本上和以前的海报一样。您需要构建其他组件。

import {BrowserRouter as Router, Route, Switch} from 'react-router-dom';

{/ *在此处导入您的组件* /}

 class Root extends React.Component{
        render(){
            return(
                <div>
                <Router>
                    <div> 
                        <Switch>
                            <Route exact path='/' component={App} /> )} />
                            <Route path="/some-component"  component={SomeComponent} /> 
                            <Route component={NotFound}/>
                        </Switch>
                    </div>
                </div>
            ); }
    }



    render(<Root/>, document.querySelector('#main'));