Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

207
Visualizações
Incapaz de resolver, los ganchos solo se pueden llamar dentro del cuerpo de un componente de función

Estoy tratando de enviar una función de inicio de sesión desde un componente. Pero este error al enviar

Advertencia: se detectó un error no controlado de submitForm () Error: llamada de gancho no válida. Los ganchos solo se pueden llamar dentro del cuerpo de un componente de función. Esto podría suceder por una de las siguientes razones:

  1. Es posible que tenga versiones que no coincidan de React y el renderizador (como React DOM)

Aquí están las versiones

 "react-dom": "^17.0.2", "react": "^17.0.2",
  1. Podrías estar rompiendo las Reglas de los Hooks
  2. Es posible que tenga más de una copia de React en la misma aplicación

Estoy usando una sola aplicación.

He estado usando este enfoque en otros proyectos de manera similar, pero esta vez no funciona. Por favor, ayúdenme a eliminar este problema. Ese es el código relacionado.

 export default function LoginForm() { const dispatch = useDispatch; const navigate = useNavigate(); const userLogin = useSelector((state) => state.userLogin); const { error: loginError, loading: loginLoading, userInfo } = userLogin; const [showPassword, setShowPassword] = useState(false); const LoginSchema = Yup.object().shape({ email: Yup.string().email('Email must be a valid email address').required('Email is required'), password: Yup.string().required('Password is required'), }); const formik = useFormik({ initialValues: { email: '', password: '', }, validationSchema: LoginSchema, onSubmit: () => { dispatch(login(values.email, values.password)); }, }); const { errors, touched, values, isSubmitting, handleSubmit, getFieldProps } = formik; const handleShowPassword = () => { setShowPassword((show) => !show); }; useEffect(() => { if (userInfo) { navigate('/dashboard', { replace: true }); } }, [navigate, userInfo]);
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Está asignando la función useDispatch para dispatch const

 const dispatch = useDispatch;

en lugar de llamar al gancho para obtener la función de envío real

 const dispatch = useDispatch();

Es por eso que recibe el error más tarde al llamar al despacho.

about 4 years ago · Juan Pablo Isaza Relatório

0

Podrías probar useRef

 const navigate = useRef(useNavigate()); ...... useEffect(() => { if (userInfo) { navigate('/dashboard', { replace: true }); } }, [navigate, userInfo]);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda