Я управляю своей навигацией через useState следующим образом:
const GameNav = () => {
const [showGame, setGame] = useState(true);
const [showCreation, setCreation] = useState(false);
const [showScoresGame, setScoresGame] = useState(false);
const [monsterChosen, setMonsterChosen] = useState(false);
const handleGameClick = useCallback(e => { (setCreation(false) || setScoresGame(false)) || (setGame(true) && setMonsterChosen(true)) }, []);
console.log("current monster testing: ", monsterChosen); // why always false??
return (
<div id="app">
<div id="navigation">
<a className="nav-link" href="#" onClick={handleGameClick}>GAME</a>
</div>
<div id="pages">
<div> {showGame && <MainGame />} </div>
</div>
</div>
);
}
Навигация работает нормально. Когда я нажимаю на ссылку, она переходит на соответствующую страницу.
Но я добавил еще один элемент состояния под названием «monsterChosen», который устанавливается с помощью «setMonsterChosen».
Я устанавливаю его в значение true, когда при щелчке по ссылке запускается handleGameClick.
Затем я записываю его в консоль, чтобы узнать, какое у него текущее значение состояния.
Но оно всегда возвращается как ложное ... хотя я установил для него значение true в "handleGameClick".
Что я делаю не так?
Спасибо!