Reactjs react.js设置默认路由

Reactjs react.js设置默认路由,reactjs,react-router,react-router-dom,Reactjs,React Router,React Router Dom,我在index.js中有一段代码: 它直接落在/a上,我也可以转到/b和/c 如果我尝试转到“/something”,它不会呈现任何内容,因为该路径的组件未定义 我想要实现的是,我不想给'/something'访问权限,尽管它什么也不给,什么也不呈现。我想如果有人试图访问'/something',他将自动重定向到'/default' 是否可能?通配符可用于匹配任何路线,请检查以下示例: const routing = ( <Router> <Switch

我在index.js中有一段代码:

它直接落在/a上,我也可以转到/b和/c

如果我尝试转到“/something”,它不会呈现任何内容,因为该路径的组件未定义

我想要实现的是,我不想给'/something'访问权限,尽管它什么也不给,什么也不呈现。我想如果有人试图访问'/something',他将自动重定向到'/default'


是否可能?

通配符可用于匹配任何路线,请检查以下示例:

const routing = (
    <Router>
        <Switch>
            <Route exact path="/">
                <Redirect to="/a"/>
            </Route>
            <Route exact path="/a" component={A}/>
            <Route exact path="/b" component={B}/>
            <Route exact path="/c" component={C}/>

            <Route path="*">
                <Redirect to="/a"/>
            </Route>
        </Switch>
    </Router>
)

是的,这就是这次会议的目的。开关将只渲染其一个子节点。您可以这样做:

const routing = (
<Router>
    <Switch>
        <Route exact path="/">
            <Redirect to="/a" />
        </Route>
        <Route path="/a" component={A} />
        <Route path="/b" component={B} />
        <Route path="/c" component={C} />
        <Route render={
            ()=>(<Redirect to="/a"/>)}
        />
    </Switch>
</Router>
)

最后一个路由没有路径,因此它将匹配每个url。但是,由于交换机的原因,如果任何其他路由匹配,它将不会被渲染。

这是一个极好的解决方案,非常感谢。。。你提前了47秒,这让你接受了。。。
const routing = (
<Router>
    <Switch>
        <Route exact path="/">
            <Redirect to="/a" />
        </Route>
        <Route path="/a" component={A} />
        <Route path="/b" component={B} />
        <Route path="/c" component={C} />
        <Route render={
            ()=>(<Redirect to="/a"/>)}
        />
    </Switch>
</Router>
)