所以问题是我有一个产品页面,我在其中从后端(即使用 API 从数据库)获取该特定产品页面的元数据。我必须使用自定义挂钩从该 API 获取数据,现在的问题是我无法使用“使用客户端”指令中的元数据。
我无法分享我的整个代码,因为它有 500 多行,所以这里是我正在尝试做的事情!
"use client"
import React from "react";
import useGetData from "./useGetData";
const Page = () => {
const { data } = useGetData();
return (
<div>
Some use of {data}
</div>
);
}
export default Page;
const GenerateMetaDataTags = () => {
const { propId } = useParams();
const { data, loading, error } = useGetData(propId);
const metaData = {};
data.forEach((ele) => {
metaData[ele.name] = ele.content;
});
if (!loading) {
return metaData;
}
};
export const metadata = GenerateMetaDataTags();
我希望从数据库获取后在客户端更新此数据。
我尝试了很多不同的方法,例如使用layout.js等,但我必须使用钩子从数据库获取数据,并且钩子总是需要“使用客户端”;
正如文档所说,您无法在客户端组件中生成元数据。