【问题标题】:How do I implement routing in React?如何在 React 中实现路由?
【发布时间】:2019-12-19 11:08:27
【问题描述】:

我是 React 新手,在实现路由时遇到问题。我想我已经设置好了所有东西,但是当我尝试路由时,我导入的组件会显示在索引页面上,但我应该会看到一个新页面。

我尝试定义所有路径并导入所需的组件

我的注册组件

export const SignUp = () => (

    <Container>
        <h2>Sign Up</h2>
        <Form className="form">
            <Col>
                <FormGroup>
                    <Label>First Name</Label>
                    <Input 
                        type="text" 
                        name="firstName" 
                        id="firstName" 
                        placeholder="First name..."
                    />
                     <Label>Second Name</Label>
                    <Input 
                        type="text" 
                        name="secondName" 
                        id="secondName" 
                        placeholder="Second name..."
                    />
                     <Label>Email</Label>
                    <Input 
                        type="email" 
                        name="email" 
                        id="email" 
                        placeholder="Email..."
                    />
                </FormGroup>
            </Col>
            <Button>Submit</Button>
        </Form>
    </Container>
)

我的 App.js 文件


import React from 'react';
import { BrowserRouter as Router, Route, Switch} from 'react-router-dom';
import { Layout} from './components/Layout'; 
import { NavigationBar} from './components/NavBar'
import {Footer} from './components/Footer';
import {SignUp} from './components/Signup'; 
import { SignIn} from './components/Signin';
import { Home } from './components/Home';
class App extends React.Component {

  render(){
    return (
      <React.Fragment>
        <NavigationBar/>
        <Layout> 
        <Router>
          <Switch>
            <Route exact  path="/"/>
            <Route  path="/signup" component={SignUp}/>
            <Route  path="/signin" component={SignIn}/>
          </Switch>
        </Router>
         <Footer/>
        </Layout>
      </React.Fragment>
    );
  }
}

我真的希望在使用链接之前先在地址栏中输入路径并进入导入的组件(页面)

【问题讨论】:

  • 您是否尝试使用来自 react-router-dom 的 BrowserRouter?或来自react-router-dom 的路由器。您能否添加所有导入,这将有助于找出您的问题所在。
  • 嗨@AlejandroGarciaAnglada,看看我编辑的帖子。它现在显示所有导入。谢谢
  • 路由器部分在我看来不错。您能否详细说明您的问题的这一部分:“我导入的组件显示在索引页面上但我应该看到一个新页面”?你的意思是你没想到会看到页面刷新?还是组件显示不正确?

标签: javascript reactjs react-router-dom


【解决方案1】:

看起来您正试图通过请求 / 获得结果,但没有任何结果。

我为你详细阐述了一个例子,codesandbox 中有类似的代码。

https://codesandbox.io/embed/vibrant-paper-knmqj

我可以看到的问题是您需要将Home 组件传递给/ 路由。

<Route exact path="/" component={Home} />

希望我的例子有所帮助。

【讨论】:

  • 嗨亚历杭德罗和克莱尔,感谢您的意见和探索性问题。我开始意识到我正在导入和传递 Home 组件,但我并没有真正自定义它,因为我使用的 index.css 中的样式影响了整个应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 2021-07-21
  • 2020-01-10
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多