Pular para o conteúdo principal

Questão de Programação — JavaScript — FGV 2024

ProgramaçãoJavaScript
Código
fg100849
Banca
FGV
Órgão
TRF - 1ª REGIÃO
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado - Especialidade: Análise de Sistemas de Informação
Considere o seguinte código de um componente funcional do React Native:function printTheme(props) { const theme = useState(props?.index?0:1); try { console.log(theme); } catch (e) { console.log(e); } return <Text>{theme}</Text>; } Considere feitas as importações necessárias. Ao ser utilizado em uma aplicação React Native, o componente acima apresentará:
  1. Ao valor do state theme;
  2. Bfalha, pois há uma ou mais falhas de sintaxe no interior do componente;
  3. Cfalha, pois o argumento passado ao hook useState não pode conter expressões;
  4. Dfalha, pois o nome de um componente funcional deve ser iniciado com letra maiúscula;
  5. Efalha, pois o fluxo principal de um componente funcional não deve conter um bloco try-catch.
Revelar gabarito e comentário

GabaritoD — falha, pois o nome de um componente funcional deve ser iniciado com letra maiúscula;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

React Native: Componente Funcional - Nomenclatura

Gabarito: letra D. O componente printTheme falha porque seu nome começa com letra minúscula. No React (e React Native), componentes funcionais devem iniciar com letra maiúscula para que o JSX os reconheça como componentes e não como tags HTML nativas. Essa convenção é essencial para o funcionamento correto.

Alternativa A — ❌ Incorreta

Embora useState retorne um array com o valor do estado, o componente não será renderizado corretamente devido ao erro de nomenclatura, então o valor do state não será apresentado.

Alternativa B — ❌ Incorreta

Não há falha de sintaxe no código. O uso de props?.index?0:1, useState, try-catch e JSX está sintaticamente correto.

Alternativa C — ❌ Incorreta

O argumento passado ao useState pode conter expressões. props?.index?0:1 é uma expressão válida, usando optional chaining e operador ternário.

Alternativa D — ✅ Correta ⟵ GABARITO

O nome printTheme inicia com letra minúscula. Em React, isso faz com que o JSX trate o componente como uma tag HTML desconhecida, gerando falha na renderização. A convenção exige que componentes comecem com maiúscula (ex: PrintTheme).

Alternativa E — ❌ Incorreta

O uso de try-catch é perfeitamente permitido em componentes funcionais. Não há restrição quanto a isso.

NÃO CAIA NESSA!

A banca coloca armadilhas como expressões complexas em useState e try-catch para distrair, mas o erro real é a nomenclatura incorreta. Fique atento: em React, componentes SEMPRE começam com letra maiúscula.

PEGA ESSA DICA!

Memorize a regra: nomes de componentes em React (funcionais ou de classe) devem começar com letra maiúscula. Isso é fundamental para o JSX diferenciar componentes de elementos nativos como <div> ou <span>.

Link permanente: /questoes/fg100849