React-Router-Dom <Link /> 标签正在更改 URL 但不呈现组件

时间:2021-04-13 15:32:23

标签: javascript reactjs react-router react-router-dom

标题组件

>>> class Formatter:
...     def __init__(self,precision=None):
...         self.set_precision(2 if precision is None else precision)
...     def __call__(self,n):
...         return f'{n:.{self.p}g}'
...     def set_precision(self,p):
...         self.p = p
...         
>>> num_formatter = Formatter()
>>> num_formatter(1.23456)
'1.2'
>>> num_formatter.set_precision(4)
>>> num_formatter(1.23456)
'1.235'
>>> num_formatter = Formatter(3)
>>> num_formatter(1.23456)
'1.23'

这是我的标题组件,我在其中使用了 Link 标签,但这些标签正在更改搜索栏中的 URL,但实际上并未呈现组件。

2 个答案:

答案 0 :(得分:1)

您不需要 Header 组件中的路由器...您可以只使用 Link,然后在您的 App.js 中设置到组件的路由。像这样..

App.Js

import React from "react";
import { BrowserRouter as Router, Link } from "react-router-dom";
import { ReactComponent as Logo } from "../../asset/crown.svg";

import "./header.scss";
const Header = () => {
  return (
    <div className='header'>
    <ul>
    <li className='logo-container'> 
    <Link  to='/'>
     <Logo className='logo' />
    </Link>
    </li>
<li>   
        <Link to="/shop">
       
         
            SHOP
            </Link>
            </li>
   
     
    </div>
  );
};

export default Header;


//APP COMPONENT

import React from "react";
import { BrowserRouter as Router,Switch, Route } from "react-router-dom";


const App = () => {
  return (
 
      <Router>
      <Switch>
          <Route exact path="/" component="Home">
      
        
          <Route path="/shop" component="shop">
        </Switch>
      </Router>
    
  );
};

export default App;

答案 1 :(得分:0)

确保不要在 BrowserRouter 中使用 BrowserRoute。

例如:当你将一个组件放在一个组件中时,它不是 JSX,它会被转换为 HTML 并可能导致错误。

相关问题