微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

路由 - react-router v5 - 总是点击 NotFound

如何解决路由 - react-router v5 - 总是点击 NotFound

我正在尝试为我的应用程序添加一个登陆页面,在授权之后。登陆页面后的路线总是点击 NotFound 路线。我无法找出原因。

最初的路线是:

const Initial = ({settings}) => {
    const store = setupStore(reducers,{settings});
    return (
        <Provider store={store}>
            <AuthProvider appSettings={settings}>
                <Router basename={settings.Appcontextpath}>
                    <MainLayout>
                        <Switch>
                            Route
                                path={LOGIN_URL}
                                component={Login}
                            />
                            <Route
                                path={logoUT_URL}
                                component={logout}
                            />
                            <Route
                                exact={true}
                                path={SILENT_RENEW_URL}
                                component={SilentRenew}
                            />
                            <AuthenticatedRoute>
                                <App>
                                    <Switch>
                                        <Route
                                            exact path="/"
                                            component={LandingPage}
                                        />
                                        <Route component={NotFound} />
                                    </Switch>
                                </App>
                            </AuthenticatedRoute>
                        </Switch>
                    </MainLayout>
                </Router>
            </AuthProvider>
        </Provider>
    );
};

在登陆页面组件中,我添加了其余的路由,这些路由应该基于点击登陆页面链接

const FeatureRoutes = () => {
   
    return (
        <Switch>
            <Route
                path={`/:Id/feature1`}
                component={Feature1}
            />
            <Route
                path={`/:Id/feature2`}
                component={Feature2}
            />            
            <Route exact path={`/:Id`} component={Features} />
        </Switch>
    );
};

export default FeatureRoutes;

点击链接正确导航到带有 /:id 的 url,但它显示 NotFound 页面

请告诉我我做错了哪一部分?

TIA

解决方法

我可以通过更改路线来解决它直到“功能”路线:

<AuthProvider appSettings={settings}>
                <Router basename={settings.AppContextPath}>
                    <MainLayout>
                        <Switch>
                            Route
                                path={LOGIN_URL}
                                component={Login}
                            />
                            <Route
                                path={LOGOUT_URL}
                                component={Logout}
                            />
                            <Route
                                exact={true}
                                path={SILENT_RENEW_URL}
                                component={SilentRenew}
                            />
                            <AuthenticatedRoute>
                                <App>
                                    <Switch>
                                        <Route
                                            exact path="/"
                                            component={LandingPage}
                                        />
                                        <Route
                                            path={'/:Id'}
                                            component={FeatureRoutes}
                                        />
                                    </Switch>
                                </App>
                            </AuthenticatedRoute>
                        </Switch>
                    </MainLayout>
                </Router>
            </AuthProvider>
        </Provider>
    );
};

我将 NotFound 路由移到了 FeatureRoutes。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?