1
resposta

Esconder os campos caso nao haja colabolador

Neste trecho de código foi usado o " && " para criar uma condicional para saber se a array está vazia e "esconder" caso seja true. Minha dúvida é: Eu poderia ter usado " ? " no lugar do " && " para fazer a mesma coisa? porque?

const Time = {props} => {
    const css = { backgroundColor: props.corSecundaria }

    return (
        props.colaboradores.lenght > 0 &&<section className='time' style={css}
            <h3> style={{ borderColor: props.corPrimaria }}>{props.nome}</h3>
            <div className='colaboradores'>
                {props.colaboradores.map( colaborador => <Colaborador nome={colaborador.nome} cargo={colaborador.cargo} imagem={colaborador.imagem})}
            </div>
        </section>
    )
}

obs: trecho tirado da aula "07 Escondendo times vazios" no modulo " React: desenvolvendo com JavaScript "

1 resposta

Olá, Allysson! Tudo ok contigo?

No caso do operador &&, ele é usado para renderizar um elemento JSX condicionalmente. Se a expressão antes do && for avaliada como verdadeira, o elemento JSX após o && será renderizado. Caso contrário, nada será renderizado.

Já o operador ternário (?) permite criar uma expressão condicional que retorna um valor específico com base em uma condição. No seu caso, você poderia ter usado o operador ternário para retornar a seção do time caso a condição props.colaboradores.length > 0 seja verdadeira, e retornar uma string vazia caso contrário.

Aqui está como ficaria o código utilizando o operador ternário:

return (
  props.colaboradores.length > 0 ? (
    <section className='time' style={css}>
      <h3 style={{ borderColor: props.corPrimaria }}>{props.nome}</h3>
      <div className='colaboradores'>
        {props.colaboradores.map(colaborador => (
          <Colaborador
            nome={colaborador.nome}
            cargo={colaborador.cargo}
            imagem={colaborador.imagem}
          />
        ))}
      </div>
    </section>
  ) : ''
)

Ambas as formas são válidas e comuns de se fazer uma renderização condicional com o React. A escolha entre usar o operador && ou o operador ternário (?) depende da preferência pessoal e do contexto em que você está trabalhando.

Para entender melhor sobre o assunto, eu recomendo a documentação oficial do React sobre o assunto: assunto,

Ou a versão atualizada em inglês dela:

Era isso, caso precise eu estarei por aqui.

Espero ter ajudado, abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor marque ele como solução! ✓