samedi 3 juillet 2021

Problem with state change using useState in if else statement

I got some issue with useState and "if else" statement. I wanted to change displayed text with a click. When I checking if counter icrement is working, it works, but when I add setText in "if else" statement there is a problem and just doesnt work properly. Icnrement strats to work strange when clicking and change a text is just imposible. Even in console increment looks wrong. Can someone help what I am doing wrong?

    let counter = 0;
    const [txt, setTxt] = useState("Text1");
    
      const handleClick = (e) => {
        if (
          e.target.classList.contains("fa-angle-right") || e.target.classList.contains("fa-angle-left")
        ) {e.target.classList.contains("fa-angle-right") ? counter++ : counter--;
    
          if (counter === 1) {
            console.log(counter);
            setTxt("Text2");
          } else if (counter === 2) {
            console.log(counter);
            setTxt("Txt3")
          } else if (counter > 2) {
            counter = 0;
            console.log(counter);
            setTxt("Text1");
          } else if (counter < 0) {
            counter = 2;
            console.log(counter);
            setTxt("Text3");
          } else if (counter === 0) {
            console.log(counter);
            setTxt("Txt1");
          }
        }
      };

Aucun commentaire:

Enregistrer un commentaire