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

Por que preciso colocar deletarTerefa dentro de uma função anônima?

Bom dia.

Não entendi por que o deletarTarefa(atualiza, index) só funciona se colocar ele dentro de uma função anônima:

const BotaoDeleta = function(atualiza, index) {
    const botaoDeleta = document.createElement("button")
    botaoDeleta.classList.add("delete-button")
    botaoDeleta.innerHTML = "deletar"
    botaoDeleta.addEventListener("click", deletarTarefa(atualiza, index))
    // function() {
    //     deletarTarefa(atualiza, index)
    // })
    return botaoDeleta
}

Testei da forma como está acima, e o botão de deletar não funcionou. Só funciona se estiver dentro da função anônima:

const BotaoDeleta = function(atualiza, index) {
    const botaoDeleta = document.createElement("button")
    botaoDeleta.classList.add("delete-button")
    botaoDeleta.innerHTML = "deletar"
    botaoDeleta.addEventListener("click", function() {
        deletarTarefa(atualiza, index)
    })
    return botaoDeleta
}

const deletarTarefa = function(atualiza, index) {

    const tarefasAtualizadas = JSON.parse(localStorage.getItem('tarefas'))

    tarefasAtualizadas.splice(index, 1)

    localStorage.setItem('tarefas', JSON.stringify(tarefasAtualizadas))

    atualiza()

} 

export default BotaoDeleta;
1 resposta
solução!

Fala Bruno, tudo bem?

O addEventListener espera receber como segundo argumento somente o nome de uma função (para que quando o evento for acionado, ela seja executada) ou uma função anônima, então, como é necessário passar algum parâmetro para o deletarTarefa usamos a função anônima para executar essa função passando os parâmetros necessários. Veja mais sobre o addEventListener clicando aqui.

Espero ter ajudado, bons estudos :D