Вы должны проверить документы
Вы можете иметь состояние для предыдущего path
и текущего path
и вызывать setLoginStatus
только тогда, когда они отличаются.
Если вы хотите setLoginStatus(true)
только тогда, когда path == 'login'
, тогда правильное использование useEffect
.
Эта часть кода будет работать только при изменении path
. И это происходит из-за [ path ]
.
useEffect(() => {
if (path ==='/login'){
setLoginStatus(true)
} else {
setLoginStatus(false)
}
}, [ path ])
И если вы используете какой-либо маршрутизатор, вероятно, ваш эффект будет работать только при начальном рендере.
Мне просто интересно, не потеряю ли я что-либо, переходя на это.
Нет, все в порядке, это то, как вы должны это сделать
Также взгляните на Возможно, вам не нужно производное состояние
И здесь