Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在2个react-router-v4项目之间导航_Javascript_Reactjs_Nginx_React Router_React Router V4 - Fatal编程技术网

Javascript 在2个react-router-v4项目之间导航

Javascript 在2个react-router-v4项目之间导航,javascript,reactjs,nginx,react-router,react-router-v4,Javascript,Reactjs,Nginx,React Router,React Router V4,我在同一台服务器上安装了两个不同的ReactJS项目。它们位于不同的目录和结构中: /var/www/myapps/app1 -> My 1st application /var/www/myapps/app2 -> My 2nd application 我使用nginx作为web服务器 两个应用程序具有相同的react路由器结构: <BrowserRouter basename={baseName}> <Switch> <Ro

我在同一台服务器上安装了两个不同的ReactJS项目。它们位于不同的目录和结构中:

/var/www/myapps/app1 -> My 1st application
/var/www/myapps/app2 -> My 2nd application
我使用nginx作为web服务器

两个应用程序具有相同的react路由器结构:

<BrowserRouter basename={baseName}>
    <Switch>
        <Route exact path="/logout" component={Logout} />
        <Route exact path="/auth" component={Logout} />
        <Route exact path="/" component={NavComponent} />
        <Route exact path="/:screen" component={NavComponent} />
        <Route
            exact
            path="/:screen/:action"
            component={NavComponent}
        />
        <Route
            exact
            path="/:screen/:action/:id"
            component={NavComponent}
        />

        <Route component={PageNotFoundError} />
    </Switch>
</BrowserRouter>

其中,
baseName
更改为
app1
(第一个应用程序)或
app2
(第二个应用程序)

这两个应用程序都有使用
react-router-v4
withRouter()
包装函数导航的组件。这些组件使用:
this.props.history.push(“/which”)
this.props.history.push(0)
this.props.history.push(-1)

我还使用
windows.location=“/app1/whatever”
window.location=“app2/whatever”

我遇到的一个奇怪的错误是在按下一个按钮后从一个应用程序切换到另一个应用程序。按顺序:

  • 用户加载
    app1
    并使用各种功能在其中导航-一切正常

  • 用户单击按钮更改为
    app2
    (此按钮使用
    windows.location
    功能)-一切正常

  • 用户使用
    this.props.history.push(“/which”)
    app2
    内部导航-一切正常

  • 用户单击某些
    app2
    屏幕的刷新按钮(使用
    this.props.history.go(0)
    )-中断,尝试加载单击的链接,但在旧的应用程序上下文中


  • 似乎在
    window.location
    之后,路由器历史记录会变得混乱,甚至加载新路由器。

    为什么不使用
    window.location.reload()
    刷新页面?这是否意味着我们也可以使用浏览器上的“重新加载”按钮?