I am making a countdown timer in React.js by following a youtube tutorial.
function maintenance() {
const countdown = () => {
const countDate = new Date("August 10, 2021 00:00:00").getTime();
const now = new Date().getTime();
const gap = countDate - now;
// Introducing Time variables
const second = 1000;
const minute = second * 60;
const hour = minute * 60;
const day = hour * 24;
//Calculate shift
const textDay = Math.floor(gap / day);
const textHour = Math.floor((gap % day) / hour );
const textMinute = Math.floor((gap % hour) / minute);
const textSecond = Math.floor((gap % minute) / second );
document.querySelector('.day').innerText = textDay;
document.querySelector('.hour').innerText = textHour;
document.querySelector('.minute').innerText = textMinute;
document.querySelector(".second").innerText = textSecond;
};
countdown();
return (
<section className="coming-soon">
<div>
<h1>A nossa equipa está a trabalhar para voltar a por o site no ar</h1>
<div className="countdown">
<div className="container-day">
<h3 className="day">Time</h3>
<h3>Dias</h3>
</div>
<div className="container-hour">
<h3 className="hour">Time</h3>
<h3>Horas</h3>
</div>
<div className="container-minute">
<h3 className="minute">Time</h3>
<h3>Minutos</h3>
</div>
<div className="container-seconds">
<h3 className="second">Time</h3>
<h3>Segundos</h3>
</div>
</div>
</div>
<img className="waiting" src="https://res.cloudinary.com/dnho57ne8/image/upload/v1628004034/3685835_sp5t6h.svg" alt=""/>
</section>
)
}
export default maintenance;
I am getting a Type Error on the 'innetText' because it says I cannot set property of null.
Now, from my research, I understood that I am calling the HTML components before they are initiated.
What should I do? I have tried moving the function to after the return, but it didn't work.
Any guesses?