首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React SPA路由问题

React SPA路由问题
EN

Stack Overflow用户
提问于 2020-01-11 00:11:11
回答 2查看 36关注 0票数 0

我有以下index.js

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter} from 'react-router-dom';
import Main from './main/main';
import './index.css';

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

Main.js中的以下内容:

代码语言:javascript
复制
import React, { Component } from 'react';
import NavMenu from "./navmenu";
import Content from "./content";
import './main.css';

class Main extends Component {
  render() {
    return (
      <div id="main-layout">
        <div id="main-header">
          <div><img src={(require("./images/ppslogo-small.png"))} alt="eeeee"/></div>
          <div><h2>Lil Test By Me</h2></div>
        </div>
        <div id="main-content">
          <NavMenu />
          <Content />
        </div>
        <div id="main-footer">
          <div>Copyright &copy; 2020. Powered By me.  All Rights Reserved.</div>
        </div>
      </div>
    );
  }
}
export default Main;

以及content.js中的以下内容

代码语言:javascript
复制
import React, { Component } from 'react';
import {Route, Switch} from 'react-dom';

import Dashboard from "../dashboard/dashboard";
import Invoicing from "../invoicing/invoicing";

class Content extends Component {
  render() {
    return(
      <Switch>
        <Route exact path="/Dashboard" component={Dashboard} />
        <Route path="/Invoicing" component={Invoicing} />
      </Switch>
    )
  }
};
export default Content

这是我试图创建一个SPA,将Content组件作为我所有后续页面的目标;然而,我显然做错了什么,因为我到处都会收到各种错误。有没有人能立即看到我在这里做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-11 00:20:32

需要从react-router-dom而不是react-dom导入RouteSwitch

代码语言:javascript
复制
import React, { Component } from 'react';
import {Route, Switch} from 'react-router-dom';

import Dashboard from "../dashboard/dashboard";
import Invoicing from "../invoicing/invoicing";

class Content extends Component {
  render() {
    return(
      <Switch>
        <Route exact path="/Dashboard" component={Dashboard} />
        <Route path="/Invoicing" component={Invoicing} />
      </Switch>
    )
  }
};
export default Content
票数 2
EN

Stack Overflow用户

发布于 2020-01-11 00:23:18

使用react-router-dom而不是react-router,然后将content.js代码更改为以下代码。

代码语言:javascript
复制
import React, { Component } from 'react';
import {Route, Switch,  BrowserRouter as Router} from 'react-router-dom';

import Dashboard from "../dashboard/dashboard";
import Invoicing from "../invoicing/invoicing";

class Content extends Component {
  render() {
    return(
      <Router>
          <Switch>
            <Route exact path="/dashboard" component={Dashboard} />
            <Route path="/invoicing" component={Invoicing} />
          </Switch>
      </Router>
    )
  }
};
export default Content

请注意,我在交换机上方添加了Router。并将react-router更改为react-router-dom,并将路由转换为小写。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59685226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档