React 功能组件未在 App.js 中呈现

React functional components not rendering in App.js

我在 React 中只使用功能组件,所以我可以更好地掌握钩子。 但是我无法在 App.js.

中呈现我的功能组件

为什么只有“登录”component/path 在浏览器中呈现? None 其他人。请帮助我发现我的 App.js 出了什么问题。谢谢!

App.js (我把hook/removed这个prop注释掉了,简化一下)

import { React, useState } from 'react';
import './App.css';
import { Route } from 'react-router-dom';
import Home from './components/Home'
import Login from './components/Login'
import Signup from './components/Signup';
console.log('app loading')
function App() {
  // const [user, setUser] = useState(props.user)
  // console.log(props.user)
  return (
    <div className="App">
    {/* <h1>This is app.js</h1> */}
    <Route
        exact path = "/"
        compotent={Home}
      /> 
    <Route
        exact path="/login" 
        component={Login}
    />
    <Route
        exact path = "/signup"
        compotent={Signup}
      /> 
    </div>
    
  );
}
export default App;

Home.js

import React from 'react'
console.log('home loading')
export default function Home() {
  console.log('home function')
  return (
    <div>
    <h1>This is home.js</h1>
    </div>
  )
}

Login.js (只有这个渲染)

import React from 'react'
import { Link } from 'react-router-dom'
console.log('login loading')
export default function Login() {
  console.log('login function loading')
  return (
    <div>
    <h1>Login.js</h1>
    <Link to="/auth/google">Login With Google</Link>
    </div>
  )
}

Signup.js

import React from 'react'
export default function Signup() {
  console.log('signup function loading')
  return (
    <div>
    <h1>This is Signup.js</h1>
    </div>
  )
}

尝试删除主页和注册路线的空格exact path = "/" => exact path="/"

试试这个:

import { React, useState } from 'react';
import './App.css';
import { Route, BrowserRouter as Router } from 'react-router-dom'
import Home from './components/Home'
import Login from './components/Login'
import Signup from './components/Signup';
console.log('app loading')
function App() {
  // const [user, setUser] = useState(props.user)
  // console.log(props.user)
  return (
    <div className="App">
    {/* <h1>This is app.js</h1> */}
    <Router>
      <Route
        exact path = "/"
        compotent={Home}
      /> 
      <Route
          exact path="/login" 
          component={Login}
      />
      <Route
          exact path = "/signup"
          compotent={Signup}
        /> 
    </Router>
    
    </div>
    
  );
}
export default App;

这应该有效

请通过以下更改重组您的 app.jsx

import { React, useState } from 'react';
import './App.css';
import { Route, BrowserRouter as Router } from 'react-router-dom'; //I MADE CHANGE HERE
import Home from './components/Home'
import Login from './components/Login'
import Signup from './components/Signup';

function App() {
  console.log('app loading')
  return (
    <div className="App">
  <Router>     //I MADE CHANGE HERE
    <Route
        exact path = "/"
        compotent={Home}
      /> 
    <Route
        exact path="/login" 
        component={Login}
    />
    <Route
        exact path = "/signup"
        compotent={Signup}
      /> 
 </Router> //I MADE CHANGE HERE
    </div>
    
  );
}
export default App;

感谢您的帮助@Chintan Sudani @Игорь Сыров @Khojiakbarkhon Isakov @Aadit M Shah。

一位同事指出问题是“/”和“/signup”路由中的拼写错误。

我写的是 'compotent=...' 而不是 'component'。

代码现已更正,组件n正在呈现,只是找到。