Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

em selecionaTarefa

Eu estava passando a id a partir do estado, isso fazia com que fosse necessário dois cliques para selecionar cada tarefa. Depois notei que o certo seria usar a id do próprio parametro, mesmo que o estado estivesse sendo alterado antes na função. Pelo que eu entendi, o estado tarefaSelecionada só é atualizado ao fim da função, então ele não é confiavel para ser usado num mesmo escopo de forma atualizada. É isso mesmo? Se sim, por quê?

1 resposta
solução!

Olá Jefferson! Tudo ok contigo?

Você está no caminho certo com suas observações.

Em React, quando usamos a função setEstado (no seu caso, setSelecionado e setTarefas), a atualização do estado não é imediata. Isso ocorre porque o React faz uso de algo chamado "atualizações de estado assíncronas". O que isso significa é que, quando você chama setEstado, o React não atualiza o estado imediatamente, mas coloca a atualização em uma fila de tarefas a serem executadas posteriormente, geralmente na próxima renderização.

Então, na sua função selecionaTarefa, quando você chama setSelecionado(tarefaSelecionada), o estado tarefaSelecionada não é atualizado imediatamente. Por isso, se você tentar usar tarefaSelecionada logo em seguida, ainda estará acessando o valor antigo do estado.

Isso explica por que você precisou usar o parâmetro tarefaSelecionada diretamente, em vez de confiar no estado tarefaSelecionada.

Aqui está um exemplo para ilustrar isso:

function selecionaTarefa(tarefaSelecionada){
  setSelecionado(tarefaSelecionada);
  console.log(tarefaSelecionada); // Vai imprimir o valor atual de tarefaSelecionada
  console.log(tarefaSelecionada); // Vai imprimir o valor antigo, pois o estado ainda não foi atualizado
}

Em suma era isso. Espero ter ajudado!

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