TypeError: Cannot destructure property 'register' of 'Object(...)(...)' as it is undefined.
Isa1Maria opened this issue · 7 comments
Hi Kyle! First of all, great tutorial!
I've done everything like you (your "signup" === my "register") and this error still occurs to me and I'm not capable of finding out what's wrong.
Would you please help me?
I've written like this:
``
import React, { useRef, useState } from "react";
import { Form, Button, Card, Alert } from "react-bootstrap";
import { useAuth } from "../contexts/AuthContext";
import { Link, useHistory } from "react-router-dom";
export default function Register() {
const nameRef = useRef()
const usernameRef = useRef()
const emailRef = useRef()
const passwordRef = useRef()
const confirmPasswordRef = useRef()
const { register } = useAuth()
const [error, setError] = useState("")
const [loading, setLoading] = useState(false)
const history = useHistory()
async function handleSubmit(e) {
e.preventDefault()
if (passwordRef.current.value !== confirmPasswordRef.current.value) {
return setError("Passwords don't match!")
}
try {
setError("")
setLoading(false)
setLoading(true)
await register(emailRef.current.value, passwordRef.current.value)
history.push("/")
} catch {
setError("Failed to create an account.")
}
}´´
Thank you for your attention!
may be using authprovider in the app.js file will work and wrapping the component inside it
import { AuthProvider } from "./context/AuthContext"
I have the same issue and I also used authprovider in app.js. Does anyone have a solution for this issue ?
Thanks
Hi Kyle! First of all, great tutorial!
I've done everything like you (your "signup" === my "register") and this error still occurs to me and I'm not capable of finding out what's wrong.
Would you please help me?I've written like this:
``
import React, { useRef, useState } from "react";
import { Form, Button, Card, Alert } from "react-bootstrap";
import { useAuth } from "../contexts/AuthContext";
import { Link, useHistory } from "react-router-dom";export default function Register() {
const nameRef = useRef()
const usernameRef = useRef()
const emailRef = useRef()
const passwordRef = useRef()
const confirmPasswordRef = useRef()
const { register } = useAuth()
const [error, setError] = useState("")
const [loading, setLoading] = useState(false)
const history = useHistory()async function handleSubmit(e) {
e.preventDefault()if (passwordRef.current.value !== confirmPasswordRef.current.value) { return setError("Passwords don't match!") } try { setError("") setLoading(false) setLoading(true) await register(emailRef.current.value, passwordRef.current.value) history.push("/") } catch { setError("Failed to create an account.") }
}´´
Thank you for your attention!
please if anyone has got the solution please tell me
In index.js File
wrap up your app Component with Auth Provider
import React from "react";
import ReactDOM from "react-dom";
import App from "./components/App";
import "bootstrap/dist/css/bootstrap.min.css";
import { AuthProvider } from "./contexts/AuthContext";
ReactDOM.render(
<AuthProvider>
<App />
</AuthProvider>,
document.getElementById("root")
);
What happens if you switch it back to signup? is signup a function in the AuthContext? Also check what apshada said. I had a similar error and looking at these 3 things helped me.