React 不会在不重新加载 URL 更改页面的情况下呈现

Bub*_*han 2 javascript uirefreshcontrol reactjs react-router

我正在尝试创建一个仪表板结构,通过单击按钮重定向到不同的组件。

我可以更改 URL,但如果没有对该 url 进行硬重新加载,页面仍然无法加载。

我的代码如下: Navigate.JS

import React from 'react';
import {
    BrowserRouter as Router,
    Switch,
    Route,
} from "react-router-dom";
import SalesDashBoard from "./salesDashBoard";
import OrderScreen from "./OrderScreen";


function SDNavigator(){
    return(
        <div>
            <Router>
                <Switch>
                    <Route exact path="/salesDesk" component={SalesDashBoard}/>
                    <Route exact path="/salesDesk/OrderScreen" component={OrderScreen}/>
                </Switch>
            </Router>
        </div>
    )}
export default SDNavigator;
Run Code Online (Sandbox Code Playgroud)

SalesDashBoard.js

import React from 'react';
import {BrowserRouter as Router, Link} from "react-router-dom";
import Button from "@material-ui/core/Button";

function SalesDashBoard() {
    return (
        <Router>
            <div>
                <h3>Dashboard Links</h3>
                    <Button
                        component={Link} to="/salesDesk/OrderScreen"
                        variant="contained"
                        color="primary"
                        type="submit"
                    >
                        Login
                    </Button>
            </div>
        </Router>
    )
}

export default SalesDashBoard;
Run Code Online (Sandbox Code Playgroud)

订单屏幕.js

import React from 'react';

function OrderScreen() {
    return (
        <div Order Screen />
    );
}
export default OrderScreen;
Run Code Online (Sandbox Code Playgroud)

单击完成并更改 URL 后重新加载时,页面正在加载,而不重新加载其仍显示仪表板页面。

PS:我已经从 App.js -> DashBoard.js 路由了这个,这工作正常。

Sar*_*wal 7

尝试这个

function SalesDashBoard() {
    return (
      // Remove Router
            <div>
                <h3>Dashboard Links</h3>
                    <Button
                        component={Link} to="/salesDesk/OrderScreen"
                        variant="contained"
                        color="primary"
                        type="submit"
                    >
                        Login
                    </Button>
            </div>

    )
}
Run Code Online (Sandbox Code Playgroud)