【问题标题】:React js not navigating to pages using react routerReact js没有使用反应路由器导航到页面
【发布时间】:2021-01-29 17:26:18
【问题描述】:

如果我在我的 http://localhost:3000/anything 中输入任何内容,它将与我输入 home 或 / 或 login 一样,什么都没有。该页面将是空白的。

我的social.js:

import React, { Component } from 'react';
import { Route, Switch } from 'react-router-dom';

import Home from '../../containers/Pages/Home/Home';
import Login from '../../containers/Pages/Login/Login';

class Social extends Component {
    render () {
        return (
            <div>
                <Switch>
                    <Route path="/home" exact component={Home} />
                    <Route path="/login" exact component={Login} />
                </Switch>
            </div>
        );
    }
}

export default Social;

app.js:

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

import Layout from './Layout/Layout'
import Social from './containers/Pages/Social';

class App extends Component {
  render() {
    return (
    <BrowserRouter>
        <div className="App">
        <Layout>
            <Social />
        </Layout>
        </div>
      </BrowserRouter>
    );
  }
}

export default App;

任何想法有什么问题吗? 谢谢。

----- 编辑,我注意到当我从 app.js 中删除 &lt;Layout&gt; ... &lt;/Layout&gt; 时它可以工作。

我的 Layout.js:

import React, { Component } from 'react';

import Toolbar from '../components/Navigation/Toolbar/Toolbar';

class Layout extends Component {
    
    render() {
        return (
        <>
            <Toolbar />
        </>
        );
    }
}

export default Layout;

和工具栏:

import React, { Component } from 'react';

import classes from './Toolbar.module.css';

class toolbar extends Component {
    
    render() {
        return(
        <>
            <header className={classes.Toolbar}>
                toolbar
            </header>
        </>
        );
    }
    
}

export default toolbar;

【问题讨论】:

  • 在路由中使用exact 属性。你想达到什么目标?
  • 看起来一切正确,我测试了您的代码,添加了我自己的组件来代替 Home 和 Login。可能是您在渲染主页或任何组件时遇到控制台错误。你能检查一下吗?
  • @BlackMath 我想打开/home/login。但所有页面都是空白的
  • @Pavan 我得到的唯一错误是src\containers\Pages\Home\Home.js Line 2:8: 'firebase' is defined but never used
  • 我也粘贴了我的 index.js 代码...

标签: javascript reactjs


【解决方案1】:

我认为您缺少围绕 Toolbar 组件的包装元素

    import React, { Component } from 'react';
    
    import Toolbar from '../components/Navigation/Toolbar/Toolbar';
    
    class Layout extends Component {
        
        render() {
            return (
           <div>
                <Toolbar />
            <div>
            );
        }
    }

export default Layout;

与工具栏相同。应该如下:

import React, { Component } from 'react';

import classes from './Toolbar.module.css';

class Toolbar extends Component {
    
    render() {
        return(
        <div>
            <header className={classes.Toolbar}>
                toolbar
            </header>
        </div>
        );
    }
    
}

export default Toolbar;

【讨论】:

  • 和以前一样的错误,/home 或 /login 不显示。如果我从 app.js 中删除 ,它们只会显示内容;/
  • 请尝试这些更改
  • 你找到好运了吗?
  • 我做了更改,但什么也没做;/
  • 不,兄弟,奇怪。但我会将&lt;Layout&gt;&lt;Social /&gt;&lt;/Layout&gt; 删除到 并做一些不同的事情......非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2023-03-16
  • 2018-07-28
  • 1970-01-01
  • 2022-01-16
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
相关资源
最近更新 更多