Reactjs 两个react应用程序之间的路由,使用单个spa注册单独的BrowserRouter

Reactjs 两个react应用程序之间的路由,使用单个spa注册单独的BrowserRouter,reactjs,react-router,url-routing,react-router-v4,react-router-dom,Reactjs,React Router,Url Routing,React Router V4,React Router Dom,我已使用以下单个spa注册了三个react应用程序: registerApplication("core", () => import("./core.js"), () => true, customProps) registerApplication("app1", () => import("./app1.js"), () => true, customProps) registerApplication("app2", () => import("./app

我已使用以下单个spa注册了三个react应用程序:

registerApplication("core", () => import("./core.js"), () => true, customProps)

registerApplication("app1", () => import("./app1.js"), () => true, customProps)
registerApplication("app2", () => import("./app2.js"), () => true, customProps)
每个应用程序都有自己的浏览器路由器

app1.index.js

<BrowserRouter>
    <Route exact path="/app1" render={() => <Component1 />} />
</BrowserRouter>

} />
app2.index.js

<BrowserRouter>
    <Route exact path="/app2" render={() => <Component2 />} />
</BrowserRouter>

} />
在core.index.js中,我有一个导航栏,它应该路由到/app1和/app2

<Link to"/app1">App1</Link>
<Link to"/app2">App2</Link>
App1
附件2

首先,我看到了在BrowserRouter(core.index.js)外部使用链接的错误。即使我尝试在core.index.js中的BrowserRouter中包含链接标记,它也只是在单击链接时更改URL,但视图不会更改。

因为您使用的是单独的路由器,所以您需要像链接外部页面一样链接到它们(即
。您应该只使用一个路由器,这样资源就不需要重新下载。Hi@SILENT谢谢您的回复。但是app1和app2是两个不同的应用程序,来自两个不同的repo。我不能限制app1或app2使用它们自己的路由器。此外,如果我使用,那么页面将被重新加载,which不是预期的行为。为了更改视图,它需要使用相同的路由器。因为它不是,所以除了重定向之外,你别无选择。即使我试图限制来自不同路由器的应用程序,单个spa在单独的上下文中呈现每个应用程序。提供商。因此,如果我在我的核心应用程序中添加路由器,另一个pps不属于核心应用程序,因为单个spa在单独的Context.Provider下呈现。因此我得到了使用错误(在app1和app2中使用)在外部,我可以将所有应用程序置于一个单独的HOC下,以便在我的核心应用程序中具有全局级别的路由器吗?只要它们共享相同的上下文,是的。由于您使用的是单独的路由器,那么您需要像链接外部页面一样链接到它们(即
。您应该只使用一个路由器,这样资源就不需要重新下载。Hi@SILENT谢谢您的回复。但是app1和app2是两个不同的应用程序,来自两个不同的repo。我不能限制app1或app2使用它们自己的路由器。此外,如果我使用,那么页面将被重新加载,which不是预期的行为。为了更改视图,它需要使用相同的路由器。因为它不是,所以除了重定向之外,你别无选择。即使我试图限制来自不同路由器的应用程序,单个spa在单独的上下文中呈现每个应用程序。提供商。因此,如果我在我的核心应用程序中添加路由器,另一个pps不属于核心应用程序,因为单个spa在单独的Context.Provider下呈现。因此,我在外部出现使用错误(在app1和app2中使用)。我可以将所有应用程序置于一个单独的HOC下,以便在我的核心应用程序中具有全局级别的路由器吗?只要它们共享相同的上下文,是的。