我在下一个 js 中使用 useSWR 发出请求,api 路由需要我所在页面的 id,它在查询参数中router.query.id
但我如何将它传递给 useSWR,以便我可以从我的 api 中提取正确的数据与我的数据库对话的路由器功能。
这是简单的请求
const router = useRouter();
//PASS ROUTER.QUERY.ID to api/dataSingle
const { data: valuesData, error: valuesError } = useSWR(
`/api/dataSingle/`,
fetcher,
);
更新:如果我尝试按照文档传递数组,则 api 函数中的请求体是未定义的。这是我自阅读以来所尝试的。
const fetcher = (url) => fetch(url).then((r) => r.json());
const router = useRouter();
const { data: valuesData, error: valuesError } = useSWR(
[`/api/dataSingle/`, router.query.id],
fetcher
);
api路由
import { query as q } from "faunadb";
import { serverClient } from "../../utils/fauna-auth";
export default async (req, res) => {
console.log(req.body);
returns undefined
};
更新:我尝试了以下提取器,但仍然不知道它在做什么,所以它不起作用。
const fetcher = (url, id) => fetch(url, id).then((r) => r.json());