【问题标题】:Uncaught Error: Invariant failed: You should not use <NavLink> outside a <Router>未捕获的错误:不变式失败:您不应在 <Router> 之外使用 <NavLink>
【发布时间】:2019-11-20 19:37:22
【问题描述】:

它说我在Router 之外使用NavLink,但是当您查看代码时。我只是导入组件(Home),而该组件实际上位于路线内。但是它会引发错误。

index.tsx

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';


ReactDOM.render(<App />, document.getElementById('root'));

App.tsx

import React from 'react';
import { BrowserRouter, Route, Switch } from "react-router-dom";
import { Register } from './pages/register/register'
import { Login } from './pages/login/login'
import { Home } from './pages/home/home'

const App: React.FC = () => {
  return (
    <div id="app-root">
      <BrowserRouter>
        <Switch>
          <Route path="/register" exact component={Register} />     
          <Route path="/login" exact component={Login} />
          <Route path="/" exact component={Home} />
        </Switch>
      </BrowserRouter>
    </div>
  );
}

export default App;

Home.txs

import React from 'react';
import { BrowserRouter, Route, Switch, NavLink } from "react-router-dom";
import classNames from 'classnames'
import styles from './home.module.css';
import logoFull from 'assets/img/pangolin-logo-full.png';
import logoText from 'assets/img/pangolin-title-text-dark.png';
import homeMessages from './home.messages';

export const Home = () => {
   return (
      <div className={styles.homePage}>
          <NavLink to="/register" className={classNames(styles.registrationButton, styles.link)}>
               {homeMessages.register()} 
          </NavLink>
          <NavLink to="/login" className={classNames(styles.loginButton, styles.link)}>
               {homeMessages.login()}
          </NavLink>
      </div>

   );
 };

【问题讨论】:

    标签: reactjs react-router-dom storybook


    【解决方案1】:

    我认为,如果您将 NavLink 移到 Switch 之外,将会解决您的问题。

    【讨论】:

    • 什么意思?
    • NavLink 是为导航栏设计的,如果要在视图中使用链接,请改用 Link。
    猜你喜欢
    • 2020-06-21
    • 2019-12-20
    • 2020-02-04
    • 2020-09-21
    • 2020-08-04
    • 2019-08-28
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    相关资源
    最近更新 更多