Я попытался создать компонент SSR, который извлекает GET с токеном в заголовках. Поскольку у меня нет доступа к API-интерфейсам ContextAPI/веб-хранилища, я пытался получить его из клиентского компонента в качестве опоры.
Вот мой код:
/* eslint-disable react-hooks/exhaustive-deps */
"use client";
import { Suspense } from "react";
import { useAuthContext } from "@/lib/contexts/auth.context.provider";
import GetOrdersTable from "./_utils/get-orders-table";
const Page = () => {
const { auth } = useAuthContext();
return (
<Suspense fallback = {<>Loading...</>}>
<GetOrdersTable token = {auth?.refreshToken || "dummyToken"} />
</Suspense>
)
};
export default Page;
Но проблема в том, что он выбирает одни и те же конечные точки до тех пор, пока не получит окончательный ответ на первый запрос или любой произвольный запрос.
Также печатается ошибка: Предупреждение: компонент был приостановлен из-за некэшированного обещания. Создание промисов внутри клиентского компонента или перехватчика пока не поддерживается, за исключением использования библиотеки или платформы, совместимой с приостановкой.
Следовательно, я не хочу возиться с рендерингом клиент-сервер, а просто хочу получить токен из локального хранилища, извлекая его с помощью действия сервера.
Это то, что я хочу. Спасибо!





В этом случае мы должны знать, что в SSR невозможно использовать Context API. Но нам нужно хранить некоторые данные для доступа к ним как в SSR, так и в CSR. В этом случае мы можем использовать API файлов cookie nextjs и функции cookie js. Остальные значения в Context API будут использоваться как обычно.