![](/img/trans.png)
[英]React Router Dom components rendering in App.js, but not as separate component
[英]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.