Нужно сделать авторизацию, используя json-server
Не могу понять как правильно получить данные из формы авторизации. То, что получилось реализовал на хуках, но именно с получением введенных данных не могу разобраться:
export const Auth = () => {
const {getData, setUserData} = useContext(AuthContext)
const onSubmit = (e) => {
e.preventDefault()
const {email} = e.target.elements.authEmail.value
const {password} = e.target.elements.authPassword.value
setUserData(email, password)
getData()
}
return (
<form onSubmit={onSubmit}>
<div className="form-group mt-3">
<label htmlFor="exampleInputEmail1">Email address</label>
<input
name="authEmail"
type="email"
className="form-control"
id="exampleInputEmail1"
aria-describedby="emailHelp"
placeholder="Enter email"
/>
<small id="emailHelp" className="form-text text-muted">
We'll never share your email with anyone else.
</small>
</div>
<div className="form-group">
<label htmlFor="exampleInputPassword1">Password</label>
<input
name="authPassword"
type="password"
className="form-control"
id="exampleInputPassword1"
placeholder="Password"
/>
</div>
<div className="form-check">
<input type="checkbox" className="form-check-input" id="exampleCheck1" />
<label className="form-check-label" htmlFor="exampleCheck1">
Check me out
</label>
</div>
<button type="submit" className="btn btn-dark">
Submit
</button>
</form>
А так выглядит код состояния
export const AuthState = ({children}) => {
const initialState = {
isAuth: false,
password: null,
email: null
}
const [state = initialState, dispatch] = useReducer(authReducer)
const setUserData = (email, password) => ({type: SET_USER_DATA, payload: email, password})
const setAuth = () => ({type: SET_AUTH})
const getData = async () => {
const response = await register()
let {email, password} = response.data.data
dispatch(setUserData(email, password))
setAuth()
}
return (
<AuthContext.Provider value={{
isAuth: state.isAuth,
getData,
setUserData
}}>
{children}
</AuthContext.Provider>
)
}
Нужно по сути реализовать форму с регистрацией, а введенные данные должны поступать в json файл, если я правильно понимаю. Подскажите пожалуйста, как можно решить проблему.