reactjs - 当我尝试使用 next.js 运行我的服务器时,我不断收到无效的钩子调用,但是当其他人克隆我的 repo 时,它在他们的 repo 上渲染得很好
问题描述
就像标题所说的那样,我正在构建一个应用程序,它最初使用一个使用 React 钩子制作的简单登录表单进行渲染,其中一个简单的布局组件将表单夹在中间。当我运行 npm run dev 时,localhost:3000 告诉我我正在使用无效的挂钩调用。我让几个人检查了代码,他们看不出有什么问题,他们能够克隆我的 repo 的 master 分支并运行服务器没有任何问题,所以我很确定代码本身不是问题。我也不确定如何复制这个问题,因为其他人在运行服务器时没有收到错误,它只是在我的系统上。谁能建议我能做些什么来解决这个问题?
import React, { useState } from 'react';
import axios from 'axios';
import Router from 'next/router';
//makes the request to the db to verify usename/password and stores data to localstorage
const signInAPI = async user => {
return axios
.post('/api/login', {
username: user.username,
password: user.password
})
.then(response => {
localStorage.setItem('userToken', response.data.token)
localStorage.setItem('name', response.data.name)
localStorage.setItem('authLevel', response.data.authLevel)
localStorage.setItem('id', response.data.id)
return response.data
})
.catch(err => {
console.log(err)
})
}
const SignIn = function() {
const [data, setData] = useState({
username: '',
password: ''
})
const handleInputChange = event => {
const { name, value } = event.target
const newData = {
[name]: value
}
setData({ ...data, ...newData})
}
const handleFormSubmit = event => {
event.preventDefault();
const user = {
username: data.username,
password: data.password
}
signInAPI(user).then(res => {
if(res) {
Router.push('.home')
}
})
}
return (
<div className="ui middle aligned center aligned grid">
<div className="column">
<h2 className="ui image header">
<div className="content">
Sign-in to your account
</div>
</h2>
<form className="ui large form">
<div className="ui stacked segment">
<div className="field">
<div className="ui left icon input">
<i className="user icon"></i>
<input type="text" name="username" placeholder="username" value={data.username} onChange={handleInputChange} />
</div>
</div>
<div className="field">
<div className="ui left icon input">
<i className="lock icon"></i>
<input type="password" name="password" placeholder="Password" value={data.password} onChange={handleInputChange} />
</div>
</div>
<div className="ui fluid large submit button" onClick={handleFormSubmit}>Login</div>
</div>
<div className="ui error message"></div>
</form>
</div>
</div>
)
};
export default SignIn
解决方案
推荐阅读
- python-3.x - 从python中的列表生成一个枚举类
- python - 将 rasa 部署到 App 引擎时出现 Google 云构建权限错误
- javascript - 如何在数据库中保存注册发布请求
- python - 根据另一个数据帧的匹配行和列填充数据帧中的值
- reactjs - 将 useEffect 与 React-redux 一起使用
- python - 如何将自定义数据集实现到 pytorch 项目
- gremlin - Gremlin Javascript 遍历永远不会解决
- java - Gradle 下载源失败
- python - 使用 Numpy 而不在数组中获得额外的维度
- python - 目标错误返回的食人者数字