gpt4 book ai didi

reactjs - 不变失败 : You should not use outside a

转载 作者:行者123 更新时间:2023-12-03 13:08:40 24 4
gpt4 key购买 nike

我使用 react-router-dom 在我的 React 应用程序中进行路由。我的应用程序的一部分提取到另一个包中。依赖项列表如下所示:

./app/dashboard/package.json

{
"dependencies": {
"@app/components": "^1.0.0",
"react": "^16.8.5",
"react-dom": "^16.8.5",
"react-router-dom": "^5.0.0"
}
}

./app/components/package.json

{
"peerDependencies": {
"react-router-dom": "^5.0.0"
}
}

当我使用来自 @app/components 的组件(需要来自 react-router-dom 的组件)时,我收到以下错误:

Uncaught Error: Invariant failed: You should not use <Route> outside a <Router> 
The above error occurred in the <Context.Consumer> component:
Uncaught (in promise) Error: Invariant failed: You should not use <Route> outside a <Router>

为什么会抛出这个错误?在 App.js 中,我使用 BrowserRouter

import React, { Suspense } from 'react';
import { Switch, Route } from 'react-router-dom';
import { Placeholder } from '@app/components';

const Auth = React.lazy(() => import(/* webpackPrefetch: true */ './pages/Auth'));
const Index = React.lazy(() => import(/* webpackPrefetch: true */ './pages/Index'));

const App = () => (
<Suspense fallback={<Placeholder />}>
<Switch>
<Route path="/auth" component={Auth} />
<Route path="/" component={Index} />
</Switch>
</Suspense>
);

export default App;

client.jsx

import React from 'react';
import { render } from 'react-dom';
import { BrowserRouter } from 'react-router-dom';

import App from './App';

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

最佳答案

我通过更改解决了这个问题:

import {Route, Switch} from "react-router";

import {Route, Switch} from "react-router-dom";

只需添加-dom。

关于reactjs - 不变失败 : You should not use <Route> outside a <Router>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55552147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com