當我單擊登錄按鈕時,我正在制作一個登錄應用程式,我收到一個錯誤(loginPage.js:33 Uncaught (in promise) TypeError: setLoginUser is not a function)這是 app.js 的代碼
function App() {
const [user,setLoginUser] = useState({})
return(
<div className='App'>
<BrowserRouter>
< Routes>
<Route path="/homepage" element={user && user?._id? <Homepage /> : <Login setLoginUser={setLoginUser} />}/>
<Route path="/login" element={<Login />} setLoginUser={setLoginUser}/>
<Route path="/register" element={<Register />} />
</Routes>
</BrowserRouter>
</div>
)
}
這是發生錯誤的 loginPage.js 的代碼
const Login = ({ setLoginUser }) => {
const login = () => {
axios.post("http://localhost:4000/login", user)
.then(res => {
alert(res.data.message)
console.log(res.data.user)
setLoginUser(res.data.user)
navigate('/homepage')
})
}
}

uj5u.com熱心網友回復:
您必須將您的setLoginUser功能傳遞給Login您的路線中的組件。
<Route path="/login" element={<Login setLoginUser={setLoginUser} />} />
uj5u.com熱心網友回復:
你應該更換:
<Route path="/login" element={<Login />} setLoginUser={setLoginUser}/>
經過
<Route path="/login" element={<Login setLoginUser={setLoginUser}/>} />
我認為在根元素中使用這樣的路徑變數不是一個好主意,但這應該可行。
為什么你有<BrowserRouter>and <Routes>?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/424355.html
標籤:javascript 反应 验证 梅尔
