Поведение в состоянии реакции не дает ожидаемых результатов - PullRequest
0 голосов
/ 29 мая 2020

Я управляю своей навигацией через 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".

Что я делаю не так?

Спасибо!

...