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á:
Ao valor do state theme;
Bfalha, pois há uma ou mais falhas de sintaxe no interior do componente;
Cfalha, pois o argumento passado ao hook useState não pode conter expressões;
Dfalha, pois o nome de um componente funcional deve ser iniciado com letra maiúscula;
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>.