Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

225
Views
TypeError: no se pueden leer las propiedades de undefined (leyendo 'setIsAuth')

Estoy recibiendo un error: "Login.js: 12 Uncaught (en promesa) TypeError: No se pueden leer las propiedades de undefined (leyendo 'setIsAuth')"

Aquí está mi Login.js

 import React from 'react'; import { auth, provider } from '../firebaseconf'; import { signInWithPopup } from 'firebase/auth'; import { useNavigate } from 'react-router-dom'; function Login({ setIsAuth }) { let navigate = useNavigate(); const singInWithGoogle = () => { signInWithPopup(auth, provider).then((result) => { localStorage.setItem("isAuth", true); setIsAuth(true); navigate("/"); }); }; return ( <div> <button onClick={singInWithGoogle}>Sign in with Google</button> </div> ); } export default Login;

Y ahí está mi App.js

 import React, { Component } from 'react'; import './css/main.css'; import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; import Home from './pages/Home'; import CreatePost from './pages/CreatePost'; import Login from './pages/Login'; class App extends Component { constructor(props) { super(props); this.state = { isAuth: false, setIsAuth: false }; } render() { return ( <Router> <nav> <Link to="/">Home</Link> <Link to="/createpost"> Create New Post</Link> {!this.state.isAuth && <Link to="/login">Login</Link>} </nav> <Routes> <Route path="/" element={<Home />} /> <Route path="/login" element={<Login setIsAuth={this.state.setIsAuth} />} /> <Route path="/createpost" element={<CreatePost />} /> </Routes> </Router> ); } } export default App;

creo que ya lo definí en App.js en el constructor, busco tu ayuda, gracias

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En login.js está usando setIsAuth como si fuera una función pero no es una función, es una variable configurada como false en su App.js Para cambiar el valor de this.state.setIsAuth , debe hacer algo como esto:

 App.js signIn = () => { this.setState({ setIsAuth: true }); } <Route path="/login" element={<Login setIsAuth={this.signIn} />} /> Login.js signInWithPopup(auth, provider).then((result) => { localStorage.setItem("isAuth", true); setIsAuth(); navigate("/"); });
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!