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!