Después de que el usuario se registre, quiero mostrar su correo electrónico en otra página. En el caso verdadero lo tengo como quiero pero en el caso falso da error. Voy a poner ese error a continuación. Por favor ayúdame a arreglar esto
**My activation page** import React from "react"; import "./auth.css"; const Activation = (props) => { const email = (props.location && props.location.state) || {}; return ( <> {email ? ( <div className="activation"> <i className="vjtal06 fas fa-check-circle"></i> <h2>Registration successful.</h2> <div className="abn5uhi"> <p>Thank you. We have send you email to {email}</p> <p> Pleace click the link in that message to activate your account. </p> </div> </div> ) : ( <div className="activation"> <i className="vjtal06 fas fa-check-circle"></i> <h2>Session Expired</h2> <div className="abn5uhi"> <p>Pleace try again.</p> </div> </div> )} </> ); }; export default Activation;
Todo lo que necesitas hacer es eliminar esto || {};
parte :)
Explicación: hay algo en javascript llamado valores Verdadero y Falso y esto significa que lo que se puede traducir en true
y false
si los marcó, en su caso {}
es el valor Verdadero, por lo que, en caso de correo electrónico vacío, todavía se convierte como true
valor booleano
Su correo electrónico siempre se valida como verdadero ya que el objeto vacío de su declaración OR no es falso ni indefinido.
Si desea mantener el código como este, puede verificar la longitud del objeto.
Object.keys(email).length !== 0;