#reactjs
#reactjs
Вопрос:
У меня на моем веб-сайте есть сценарий входа в систему, в котором, когда пользователь попадает на страницу 1, он должен быть включен, поэтому он будет перенаправлен на страницу входа командой, подобной приведенной ниже в page1.js
history.push({
pathname: '/login-page',
state: { from: '/page1' }
});
Очевидно, что если пользователь еще не зарегистрировался, он снова перенаправится на страницу регистрации со страницы ввода с помощью команды, которая извлекает путь из указанного выше состояния.из
Теперь на странице регистрации пользователь может вернуться на страницу входа
history.push({
pathname: '/login-page',
state: { from: from }
});
который снова был получен из state.from , проблема в том, что все эти состояния будут исправны до страницы регистрации, но когда пользователь переходит на страницу входа, location.state всегда не определен, хотя я явно использовал приведенную выше команду с именем пути, установленным в ‘/ login-page’. Кто-нибудь знает, почему это происходит?
Комментарии:
1. Если я вас правильно понимаю, когда пользователь приземляется на маршруте, состояние всегда равно нулю.
2. да, во второй раз, а не в первый раз, когда я захожу на страницу входа, состояние равно нулю. страница 1 -> вход (состояние в порядке) -> регистрация (состояние в порядке) -> вход (состояние становится нулевым)
3. Возможно, это потому, что состояние «сохраняется для каждого местоположения». Аналогично случаю, описанному в разделе, начинается с
If the same component is used as the child of multiple <Route>s
— reactrouter.com/web/api/Route . Хотя я не уверен, каково решение.