dangerous-fuchsiaD
Refine2y ago
8 replies
dangerous-fuchsia

useShow in nextjs is not extracting the id from the path

my path is /blog/[id/page.tsx and it looks liek this:

'use client';

import { useShow } from '@refinedev/core';
import { IPost } from '@/classes/types';

export default function PostShow() {
const { queryResult: { data, isLoading } } = useShow<IPost>();

const postData = data?.data;

return (
<div>
{isLoading && <p>Loading...</p>}
{!isLoading && (
<><h1>{postData?.fields.title}</h1><p>{postData?.fields.description}</p></>
)}
</div>
);
}

The error I keep getting is

[useShow]: resource: "blogPost", id: undefined

If you don't use the setShowId method to set the showId, you should pass the id prop to useShow. Otherwise, useShow will not be able to infer the id from the current URL.

See https://refine.dev/docs/api-reference/core/hooks/show/useShow/#resource
Was this page helpful?