getServerSideProps возвращает старый ответ api - передается пустой слаг - Next.js React
import React from 'react';
import { API_BASE_URL } from 'fby-common/dist/config';
import get from "lodash/get";
import Home from 'components/Home';
import SpaceContainer from 'containers/Editor/Spaces/SpaceContainer';
import InterestContainer from 'containers/Editor/Interest/InterestContainer';
function DecidePage(props) {
const slugData = get(props, 'slugData.slugs', {});
if (slugData.slug) {
if (slugData.type === "space") {
return <SpaceContainer id={slugData.id} />
} else if (slugData.type === "tag") {
return <InterestContainer id={slugData.id} />
}
}
return <Home />;
}
// This function gets called at build time
export async function getServerSideProps(context) {
// Call an external API endpoint to get slugs
console.log('context here:' + context);
const slug = get(context, 'query.slug', '')
console.log('slug here:' + slug);
let headers = new Headers();
const body = JSON.stringify({ slug });
let requestOptions = {
method: "POST",
headers,
body,
redirect: "follow",
};
const res = await fetch(
`${API_BASE_URL}/v1/slug/get`,
requestOptions
);
console.log('res here:' + res);
const slugData = await res.json();
console.log('slugData here:' + slugData);
return {
props: { slugData, slug }
};
}
export default DecidePage;
getServerSideProps всегда возвращает один и тот же ответ API, однако я передаю разные параметры. Я думаю, что slug передается как пустой, а не то значение, которое я получаю из контекста.
server.get('/:slug', (req, res) => {
const actualPage = '/DecidePage';
app.render(req, res, actualPage, { slug: req.params.slug });
});
ДАННЫЕ:
context here:[object Object]
slug here:himalayan-space
res here:[object Response]
slugData here:[object Object]
https://i.stack.imgur.com/nXPw4.png
API отлично работает с почтальоном: https://i.stack.imgur.com/ZDxoL.png