reactjs - 未捕获的错误:不变量失败:您不应该使用外面
问题描述
它说我正在使用NavLink
outside Router
,但是当您查看代码时。我只是导入组件(Home),它实际上是在路线内。但是它会引发错误。
索引.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'));
应用程序.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;
主页.txt
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>
);
};
解决方案
我想如果你搬出去NavLink
会Switch
解决你的问题。
推荐阅读
- reactjs - React hooks set 函数在子组件中不起作用
- performance - Rust 中什么更好:定义一个静态变量以全局访问它或通过函数参数传递一个非静态变量?
- json - 我可以在 VS 代码片段中包含条件逻辑吗?
- bash - 在文件中搜索匹配后,将以下行回显到 bash 中的空行?
- spring - Spring JDBC 丢失时间戳与时区的偏移量
- active-directory - 如何在此 Active Directory 字符串上设置所有国家/地区?
- sql - PostgreSQL 连接类型
- sql - 如何创建具有两个主键的表,其中一个是一个表中的外键,另一个是另一个表中的外键?
- javascript - Intellij idea 无法识别 mochajs 关键字,例如“describe”、beforeAll、it 等
- ios - Google AdMob 返回“配置没有有效的 Google 应用 ID”