繁体   English   中英

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

[英]React functional components not rendering in App.js

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

为什么只有“登录”组件/路径会在浏览器中呈现? 其他都没有。 请帮助我发现我的 App.js 有什么问题。 谢谢!

App.js (我已经注释掉了钩子/删除了道具,以简化它)

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;

主页.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>
  )
}

注册.js

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

尝试为 Home 和 Signup 路由删除空格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;

我在“/”和“/注册”路线中有拼写错误。

我写的是'compo*t*ent=...'而不是'compo**n**ent'

代码现在已更正, compo**n**ents正在渲染,只需找到即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM