Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] problemas com a variável de tempo

Tentei modular o codigo para ficar mais organizado. estou com problemas em utilizar a variavel de tempo "tempoDeCorridoEmSegundos" que no meu codigo coloquei "breakTime". nos 2 arquivos: timer.js e script.js como ele é um let n consigo exporta da mesma maneira que um const então transformei em um objeto export const breakTime = {value: 1500} e tentei utilizar assim aqui está o link do GitHub, agradeço quem poder ajudar: https://github.com/BirdMelo/fokus-Projeto

2 respostas
solução!

Olá, João. Tudo bem?

Quando você declara um variável e exporta ela para outro arquivo, ela se torna apenas uma referência de leitura e não pode ser alterada diretamente nesse arquivo. Uma maneira de contornar isso é criar uma função para atualizar o valor de breakTime e exportá-la de script.js. Isso permite que timer.js chame essa função para modificar o valor, em vez de tentar atualizar a variável diretamente.

  • No script.js, crie uma função para atualizar breakTime:
export let breakTime = 1500

export function setBreakTime(value) {
    breakTime = value;
}
  • Importe e use essa função em timer.js:
import { toggleTimer, breakTime, setBreakTime } from "./script.js";

// Dentro da função countdown
const countdown = () => {
    if (breakTime <= 0) {
        timeoutSong.play();
        clearTime();
        setBreakTime(5);  // Use a função para atualizar o valor
        toggleButton('Começar', '../imagens/play_arrow.png');
        return;
    }
    setBreakTime(breakTime - 1);  // Use a função para decrementar o valor
    showTimer();
    console.log(`temporizador: ${breakTime}`);
};

Essa abordagem deve permitir que você altere o valor de breakTime indiretamente. Lembrando que é necessário atualizar o uso da variável breakTime em outros pontos do código onde ela está sendo utilizada.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Mike, obrigado. tive que fazer umas alterações no meu codigo, mas funcionou muito bem. se quiser de uma olhada :D