В следующем. js 9.3 Мне нужно получить доступ к запросу при начальном рендеринге и передать результат запроса в next/head
, чтобы изменить заголовок и описание страницы.
Мой компонент получает запрос от useRouter
крючок. К сожалению, объект запроса { amp: undefined }
при начальном рендере. Сразу после первоначального рендеринга происходит другой рендеринг, в котором есть все необходимые детали. Я начал использовать этот обходной путь с проверки, готов ли маршрут https://github.com/zeit/next.js/issues/8259#issuecomment -544912889 , но это не будет работать для next/head
, так как значения будут неопределенными.
import React from 'react';
import { useRouter } from 'next/router';
import Head from 'next/head';
function isRouterReady(router) {
return router.asPath !== router.route;
}
export default Component = () => {
const router = useRouter();
const { query } = router;
useEffect(() => {
if (isRouterReady(router)) {
// router.query is populated here with name
}
}, [query]);
return (
<Head>
// query has only amp key, but not my name
<title>{query.name}</title>
<meta
name="description"
content={query.name}
/>
</Head>
);
};
Is Есть ли способ, как я могу правильно передать значения из запроса маршрутизатора в заголовок и мета-описание next/head
?