浏览器呈现一个空页面

Browser rendering an empty Page

我正在使用 bootstrap 帮助我创建登录表单。但是当呈现这个登录组件时,我得到一个空的浏览器,但是当我呈现没有表单组和表单控件的其他组件时,我在浏览器中得到了内容。

import React from 'react'
import { Button} from 'react-bootstrap';
import { Form } from 'react-bootstrap';
import GoogleButton from 'react-google-button';
import { Link } from 'react-router-dom';


const SignIn = () => {

    return (
        <>
      
            <div className="p-4 box">
                <h2 className="mb-3">Bonnie Electronics</h2>
                <Form>

                    <Form.Group className="mb-3" controlId="formBasicEmail">
                        <Form.Control type='email' placeholder="email address" />
                    </Form.Group>

                    <Form.Group className="mb-3" controlId="formBasicPassword">
                        <Form.Control type='password' placeholder="password" />
                    </Form.Group>

                    <div className="d-grid gap-2">
                         <Button type="submit" variant="primary">Login</Button>
                    </div>

                </Form>

                <hr />

                 <div>
                     <GoogleButton type="dark" className="g-button" />
                 </div>
                
            </div>
            <div className="p-4 box mt-3 text-center">
                Don't Have an Account? <Link to='/signup'>SignUp</Link>`enter code here`
            </div>

       </>
       
    )   
}

export default SignIn;

您需要在 内部 路由上下文中呈现此组件登录,因为您正在使用 Link 来自反应 反应路由器-dom

您正在做类似的事情:

<SignIn /> // <-- This can't be outside router!

<Router>
  <Routes>
    <Route path="/" element={<Home />} />
    <Route path="/whatever" element={<YourComp/>} />
  </Routes>
</Router>

您应该将它移到路由上下文中,以便路由器知道并可以正确管理路由。

<Router>
  <SignIn/>
  <Routes>
    <Route path="/" element={<Home />} />
    <Route path="/whatever" element={<YourComp/>} />
  </Routes>
</Router>

我创建了Demo:

https://codesandbox.io/s/sweet-morning-0pt00?file=/src/SignIn.js

您还可以在此处:

阅读更多参考资料