При начальной загрузке страницы getInitialProps
будет выполняться только на сервере. Затем getInitialProps
будет запускаться на клиенте при переходе к другому маршруту через компонент next/link
или используя next/router
. Документы
Это означает, что вы не сможете получить доступ к localStorage
(только на стороне клиента) все время, и вам придется обрабатывать его:
Dashboard.getInitialProps = async ({ req }) => {
let token;
if (req) {
// server
return { page: {} };
} else {
// client
const token = localStorage.getItem("auth");
const res = await fetch(`${process.env.API_URL}/pages/about`, {
headers: { Authorization: token },
});
const data = await res.json();
return { page: data };
}
};
Если вы хотите получить токен пользователя для начальной загрузки страницы, вы должны сохранить токен в cookies
вместо localStorage
, который @alejandro также упомянул в комментарии.