【问题标题】:REACT.JS PATH EXACT NOT RENDERINGREACT.JS 路径完全不渲染
【发布时间】:2021-04-28 10:22:35
【问题描述】:
import {BrowserRouter , Route} from 'react-router-dom';
import React from 'react';
import HomeScreen from './screens/HomeScreen';
import ProductScreen from './screens/ProductScreen';
function App() {
  return (
   <BrowserRouter>
      <div className="grid-container">
        <header className="row">
        <div>
           <a className="brand" href="index.html">SanaMall.</a>
        </div>
        <div>
            <a className="link" href="/cart"> Cart</a>
            <a className="link" href="/signin"> Sign In</a>
        </div>
    </header>
    <main>
       <Route  path= "/" component={HomeScreen}/>
       <Route path="/product/:id" component={ProductScreen}/>
    </main>
    <footer className="row center">
        All rights reserved.
    </footer>
    </div>
    </BrowserRouter>
  );
}
export default App;

所以我的问题是,当我在组件 HomeScreen 上放置确切路径时,它不会呈现任何内容,然后 ProductScreen 仅出现在浏览器上。然后,如果 HomeScreen 显示在浏览器中,每当我点击产品时,它只会刷新 HomeScreen 而不会显示 ProductScreen。

希望你们能帮助我。这是我近 3 天的问题。

【问题讨论】:

    标签: reactjs path routes jsx


    【解决方案1】:

    如果此代码不起作用,请告诉我

    import {BrowserRouter ,Switch, Route} from 'react-router-dom';
    import React from 'react';
    import HomeScreen from './screens/HomeScreen';
    import ProductScreen from './screens/ProductScreen';
    function App() {
      return (
       <BrowserRouter>
          <div className="grid-container">
            <header className="row">
            <div>
               <a className="brand" href="index.html">SanaMall.</a>
            </div>
            <div>
                <a className="link" href="/cart"> Cart</a>
                <a className="link" href="/signin"> Sign In</a>
            </div>
        </header>
    
           <Switch>    
            <Route exact path="/" >
              <HomeScreen />
            </Route>
            <Route path="/product/:id">
              <ProductScreen />
            </Route>
          </Switch>
    
        
        <footer className="row center">
            All rights reserved.
        </footer>
        </div>
        </BrowserRouter>
      );
    }
    export default App;
    

    【讨论】:

    • 请投票给我的答案,这将有助于提高我的声誉,也感谢您接受我的回答
    【解决方案2】:

    使用 Switch 独占渲染每条路由https://reactrouter.com/core/api/Switch

    【讨论】:

    • 我已经用过switch,但同样的问题,每当我点击一个产品时,它只会刷新主屏幕。 >.
    猜你喜欢
    • 1970-01-01
    • 2018-04-21
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    相关资源
    最近更新 更多