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

149
Visualizações
Cómo devolver un objeto condicionalmente

Estoy trabajando en un proyecto de aplicación web y tengo el siguiente componente que devuelve el objeto Menu antd.

 const items = [ { label: <Link to='/register'>Register</Link>, key: 'register', icon: <UserAddOutlined />, style: { marginLeft: 1030}, // problem: hard-coded margin }, { label: <Link to='/login'>Login</Link>, key: 'login', icon: <UserOutlined />, style: { marginLeft: 'auto'}, }, ]; return <Menu mode="horizontal" items={items} />;

Ahora tengo un objeto llamado user . Si user no es nulo (lo que significa que hay un usuario que está conectado actualmente), quiero ocultar el register en el objeto de los items anteriores; de lo contrario, quiero mostrar el register en el Menu . El componente Menu se verá así:

ingrese la descripción de la imagen aquí

Alguien me puede ayudar con eso?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede insertar este código después de declarar items ,

 if(users!==null) { items.splice(0,1) //removes first array element which is the register button }

Le recomendaría encarecidamente que use el estado para este propósito porque esa es la forma prevista para tales casos.

Con eso me refiero a encapsular el objeto de items en un estado y usar el código anterior durante cada renderización usando algo como useeffect hook

Mire la pregunta y la respuesta verificada a continuación para comprender cómo hacerlo en las versiones más nuevas de reaccionar

cómo actualizar un objeto usando useEffect en Reactjs y Typescript

about 4 years ago · Juan Pablo Isaza Relatório

0

Solo debe recordar que items son una matriz regular. No todo en React son objetos exóticos. Gran parte de su código utilizará objetos normales como cadenas, matrices, números, etc. No se deje cegar por la sintaxis literal de la matriz que olvida que es solo una matriz.

Ya hay una respuesta que muestra lo que puede hacer con la matriz de items para eliminar el primer elemento. Pero también puedes escribirlo simplemente:

 let items = []; if (user !== null) { items.push({ label: <Link to='/register'>Register</Link>, key: 'register', icon: <UserAddOutlined />, style: { marginLeft: 1030}, // problem: hard-coded margin }) } items.push({ label: <Link to='/login'>Login</Link>, key: 'login', icon: <UserOutlined />, style: { marginLeft: 'auto'}, }) return <Menu mode="horizontal" items={items} />;
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