1
resposta

setState não atualiza !!!!

Tenho uma aplicação, onde eu tenho uma ficha de treinos, e nela eu criei um formulario onde eu posso adicionar uma nova tarefa conforme a imagem abaixo

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Porem quando eu adiciono essa nova tarefa, minha tela inicial nãi atualiza, eu preciso fechar minha aplicação e rodar dnv, e eu ja tentei usar o set state e não vai. Utilizei da seguinte maneira.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ja coloquei antes do navigator.pop, n foi tambem.

1 resposta

Olá, Victor!

Pelo que você descreveu, parece que você está enfrentando um problema comum em aplicações React Native, que é a atualização da tela após uma ação ser realizada. Seu uso do setState parece correto, mas o problema pode estar relacionado com a forma como você está navegando entre as telas.

Quando você usa o navigator.pop(), você está basicamente voltando para a tela anterior, mas essa tela não sabe que algo mudou. Uma solução possível para esse problema é fazer com que a tela inicial verifique se algo mudou toda vez que ela é focada.

Para isso, você pode usar o método addListener do navigation. Aqui está um exemplo de como você pode fazer isso:

componentDidMount() {
    this.focusListener = this.props.navigation.addListener('didFocus', () => {
        // chamar a função que atualiza os dados na tela aqui
    });
}

componentWillUnmount() {
    // Não se esqueça de remover o listener quando o componente for desmontado
    this.focusListener.remove();
}

Neste exemplo, sempre que a tela ganhar foco, a função dentro do addListener será chamada. Você pode colocar a função que atualiza os dados na tela dentro dela.

Espero ter ajudado e bons estudos!