1
resposta

Erro ao usar a função useIsFocused()

Boa noite amigos,

Quando vou usar a função useIsFocused() do @react-navigation/native' esta apresentando o erro a baixo, será que alguém consegue me ajudar?

 ERROR  Warning: Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Likely causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.

Error message:

TypeError: destroy is not a function (it is Object)
    in Repositorios (created by SceneView)
    in StaticContainer
    in EnsureSingleNavigator (created by SceneView)
    in SceneView (created by SceneView)
    in RCTView (created by View)
    in View (created by DebugContainer)
    in DebugContainer (created by MaybeNestedStack)
    in MaybeNestedStack (created by SceneView)
    in RCTView (created by View)
    in View (created by SceneView)
    in RNSScreen
    in Unknown (created by InnerScreen)
    in Suspender (created by Freeze)
    in Suspense (created by Freeze)
    in Freeze (created by DelayedFreeze)
    in DelayedFreeze (created by InnerScreen)
    in InnerScreen (created by Screen)
    in Screen (created by SceneView)
    in SceneView (created b
1 resposta

Oi, Aleir, como vai?

O erro que você está recebendo parece ser um erro interno do React, mas pode estar relacionado a como você está usando a função useIsFocused().

A função useIsFocused() é um hook que retorna um valor booleano indicando se a tela atual está em foco ou não. Ela deve ser usada dentro de um componente de tela que está dentro de um Navigator. Se você tentar usá-la fora desse contexto, pode receber erros.

Aqui está um exemplo de como você pode usar a função useIsFocused():

import { useIsFocused } from '@react-navigation/native';

function MinhaTela() {
  const isFocused = useIsFocused();

  return <Text>{isFocused ? 'Estou em foco' : 'Não estou em foco'}</Text>;
}

Nesse exemplo, o componente MinhaTela usará o hook useIsFocused() para determinar se está em foco ou não. Se estiver em foco, exibirá 'Estou em foco', caso contrário, exibirá 'Não estou em foco'.

Se você está usando a função useIsFocused() dessa maneira e continua recebendo o erro, pode ser um problema com o seu ambiente de desenvolvimento ou uma incompatibilidade de versões entre o React e o @react-navigation/native. Nesse caso, você pode tentar atualizar as versões dos pacotes ou reinstalar os pacotes.

Caso ainda esteja com problemas, peço que compartilhe o link do seu projeto no GitHub ou uma pasta com todos os arquivos que você utilizou no através do Google Drive. Dessa forma, conseguirei realizar os testes necessários e te ajudar de forma mais assertiva. Lembre-se que, se enviar os arquivos por meio do Google Drive, é necessário conceder permissão para que eu possa ter acesso.

Espero que dê tudo certo. Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software