【问题标题】:React-routing -> routing renders on same page even after "exact" fieldReact-routing -> 即使在“精确”字段之后,路由也会在同一页面上呈现
【发布时间】:2020-03-05 06:51:19
【问题描述】:

我想在登录页面中单击时呈现注册页面。我在路由方面遇到了一些问题。注册页面呈现在同一页面上。我只在登录页面(“/注册”)上创建了一个路由。我的目标是仅使用注册详细信息呈现一个新页面。我认为通过添加精确它可以解决它。

import React from 'react';
import './Login.css';
import {Route, Link, BrowserRouter as Router} from 'react-router-dom'
import Signup from "./Signup";
import Home from "./Home";


function Login() {
  return (
<div class="login-page">
  <h2 id="projectName" class="text-center"> login. </h2>
  <div class="form">
    <form class="login-form">
      <input type="text" placeholder="Username"/>
      <input type="password" placeholder="Password"/>
      <button>login</button>
        <Router>
            <p class="message">New user ->
            <Link to="/signup">Sign up</Link>
            </p>
            <Route path="/signup" exact={true} component={Signup} />
        </Router>
      <p class = "message"> <a href="#">Forgot Password</a> or <a href="#">Forgot Username</a> </p>
    </form>
  </div>
  <div class="container">
      <div class="row">
        <div class="col-lg-12">
          <h1 class="tagline text-center"></h1>
        </div>
      </div>
    </div>
</div>

  );
}

export default Login;

import React from 'react';
import './Login.css';

function Signup() {
  return (
<div class="login-page">
  <h2 id="projectName" class="text-center"> signup.</h2>
  <div class="form">
    <form class="login-form">
      <input type="text" placeholder="First name"/>
      <input type="text" placeholder="Last name"/>
      <input type="email" placeholder="Email"/>
      <input type="text" placeholder="Username"/>
      <input type="password" placeholder="Password"/>
      <button>Sign up</button>
      <p class="message">Already have an account -> <a href="">Login</a></p>
    </form>
  </div>
  <div class="container">
      <div class="row">
        <div class="col-lg-12">
          <h1 class="tagline text-center"></h1>
        </div>
      </div>
    </div>
</div>


  );
}

export default Signup;
image of how the page looks with the login, and signup -> I have only set one route

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:
    通过渲染登录组件
    <Route path="/" exact component={login} />
    
    

    在 app.js 文件中

    希望这能解决您的问题

    【讨论】:

      【解决方案2】:

      在 login.js 组件中试试这个

      import React from 'react';
      import {Link} from 'react-router-dom'
      
      function Login() {
        return (
      <div class="login-page">
        <h2 id="projectName" class="text-center"> login. </h2>
        <div class="form">
          <form class="login-form">
            <input type="text" placeholder="Username"/>
            <input type="password" placeholder="Password"/>
            <button>login</button>
                  <p class="message">New user ->
                  <Link to="/signup">Sign up</Link>
                  </p>
      
            <p class = "message"> <a href="#">Forgot Password</a> or <a href="#">Forgot Username</a> </p>
          </form>
        </div>
        <div class="container">
            <div class="row">
              <div class="col-lg-12">
                <h1 class="tagline text-center"></h1>
              </div>
            </div>
          </div>
      </div>
      
        );
      }
      
      export default Login;
      

      在 signup.js 中

      import React from 'react';
      
      function Signup() {
        return (
      <div class="login-page">
        <h2 id="projectName" class="text-center"> signup.</h2>
        <div class="form">
          <form class="login-form">
            <input type="text" placeholder="First name"/>
            <input type="text" placeholder="Last name"/>
            <input type="email" placeholder="Email"/>
            <input type="text" placeholder="Username"/>
            <input type="password" placeholder="Password"/>
            <button>Sign up</button>
            <p class="message">Already have an account -> <a href="">Login</a></p>
          </form>
        </div>
        <div class="container">
            <div class="row">
              <div class="col-lg-12">
                <h1 class="tagline text-center"></h1>
              </div>
            </div>
          </div>
      </div>
      
      
        );
      }
      
      export default Signup;
      

      创建路由组件以重定向到其他组件

      import React from 'react';
      import {Route, Switch} from 'react-router-dom';
      import Signup from './Signup'
      
      const Routes = () => {
          return(
            <Switch>
              <Route path="/signup" exact={true} component={Signup} />
            </Switch>
          )
      }
      
      export default Routes;
      

      【讨论】:

        猜你喜欢
        • 2021-05-22
        • 1970-01-01
        • 1970-01-01
        • 2015-01-11
        • 2019-05-30
        • 2021-11-14
        • 2019-03-26
        • 2019-09-13
        • 2021-09-27
        相关资源
        最近更新 更多