#reactjs
Вопрос:
Пробовал ,что мог, но потерпел неудачу, пробовал с помощью useState и все, но нет.
Я использую авторизацию firebase ,если пользователь вошел в систему ,я показываю компонент главной страницы ,если нет ,я показываю страницу входа, но иногда она просто мигает на странице входа и переходит на главную страницу странным/плохим способом, есть предложения по исправлению этого?
РЕДАКТИРОВАТЬ : Я пытался без эффекта использования, но все равно то же самое
function App() {
const [mycurrentUser,SetCurrentUser] = useState(null)
useEffect(() => {
onAuthStateChanged(auth, (user) => {
if (user) {
SetCurrentUser(user)
} else {
SetCurrentUser(null)
}
});
}, [auth.currentUser])
return (
<section>
{ mycurrentUser
? <FeedPage/>
: <AuthPage/>}
</section>
);
}
Ответ №1:
Одна вещь , которую я заметил, заключается в том, что вам не нужно продолжать звонить onAuthStateChange
, достаточно одного раза на горе.
useEffect(() => {
onAuthStateChanged(auth, (user) => {
if (user) {
SetCurrentUser(user)
} else {
SetCurrentUser(null)
}
});
}, [])
Кроме того, как Auth
страница узнает текущего пользователя ? Либо вы должны передать его через реквизит, либо в контексте.
Комментарии:
1. Тем не менее ,он все равно будет мигать , когда я обновляю страницу ,пользователь быстро меняет значение с нуля на объект, вызывая вспышку между визуализациями, странице аутентификации не нужно знать пользователя, который она просто используется для создания учетной записи или входа в систему, я не знаю, что делать.