【问题标题】:React-mdl Error: Invariant failed: You should not use <Link> outside a <Router> The website is not getting RoutedReact-mdl Error: Invariant failed: You should not use <Link> outside a <Router> 网站没有被路由
【发布时间】:2020-05-02 00:26:58
【问题描述】:

main.js

import React from 'react';
import {BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom';
import home from './home';
import about from './about';
import menu from './menu';
import gallery from './gallery';
import franchise from './franchise';

const Main = () => (

    <Switch>

        <Route exact path ="/" component={home} />
        <Route  path ="/about" component={about} />
        <Route  path ="/menu" component={menu} />
        <Route  path ="/gallery" component={gallery} />
        <Route  path ="/franchise" component={franchise} /> 


    </Switch>
)
export default Main;

nav.js

import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import { Layout, Header, Navigation, Drawer, Content} from 'react-mdl';
import Main from './main';
export default class CustomNavbar extends Component {
  render() {
    return (
<div className="demo-big-content">
    <Layout>
        <Header title="CHEFSTYLE" scroll>

            <Navigation>
                <Link href="/" to="/">Home</Link>
                <Link href="/about" to="/about">About</Link>
                <Link href="/menu">Menu</Link>
                <Link href="/gallery">Gallery</Link>
                <Link href="/franchise">Franchise</Link>
            </Navigation>

        </Header>
        <Drawer title="CHEFSTYLE">
            <Navigation>
                <Link href="/" to="/">Home</Link>
                <Link href="/about" to="/about">About</Link>
                <Link href="/menu">Menu</Link>
                <Link href="/gallery">Gallery</Link>
                <Link href="/franchise">Franchise</Link>
            </Navigation>
        </Drawer>
        <Content>
            <div className="page-content" />
            <Main/>
        </Content>
    </Layout>
</div>  )

  }
}

错误:不变量失败:您不应该在外部使用 不变的 D:/pandemic/pandemicmateria/kupsmaterial/node_modules/tiny-invariant/dist/tiny-invariant.esm.js:11 (匿名函数) D:/pandemic/pandemicmateria/modules/Link.js:84 如果我在 main.js 中使用 Router 标签而不是 Switch,并且如果我在 nav.js 中将导航标签与 Router 标签括起来,则我在 UI 中使用 react-mdl 表示我没有收到任何错误,但我我没有得到输出...我的意思是页面没有相对于链接进行路由

【问题讨论】:

  • 添加你的 index.js 文件并告诉我
  • 我认为您可能在渲染时缺少&lt;BrowserRouter&gt; 包装器。这就是您收到该错误的原因。 &lt;Link> 应该在 &lt;Router&gt; 组件内,这就是您收到该错误消息的原因。或者你在其他地方添加了。

标签: reactjs react-router material-ui react-material


【解决方案1】:

如下在 Index.js 中添加 BrowserRouter,对我有用。

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

【讨论】:

    【解决方案2】:

    如果您的整个应用程序都在您的路由器中,您只能使用 Link 访问您的路由。

    <BrowserRouter>
    <Layout>
            <He....
    
    </Layout>
    </BrowserRouter>
    

    【讨论】:

    • 尊敬的先生,我也将 BrouserRouter 用作路由器...因为我没有收到任何错误但页面没有被路由...
    • 你在哪里使用你的路由器标签???请更新您的代码。
    • 你也可以参考我的 react 项目,以便更好地理解 react router。github.com/karenaprakash/navbar-example.git
    猜你喜欢
    • 2020-02-20
    • 1970-01-01
    • 2021-01-28
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多