My problem: Want to display every letter after 1 second, but instead of this I display all the letters immediately. I have tried many ways to do this but still can't.
My code:
const [parrot, setParrot] = useState({ content: ' ' });
const displayText = () => {
let text = 'Parrot';
let freeLetters = [...text];
let sumOfLetters = [];
for (let k = 0; k < freeLetters.length; k++) {
(function() {
let j = k;
setTimeout(() => {
sumOfLetters.push(freeLetters[j]);
console.log(sumOfLetters);
setParrot({
content: sumOfLetters.join(' ')
});
console.log(parrot.content);
}, 1000);
})();
}
};
return (
<div className={classes.contentwrapper}>
<h1 onClick={() => displayText()}>Click me, {parrot.content}</h1>
</div>
);