Reputation: 167
Since I added the config file and replace :
Navigation File
import { createLocalizedPathnamesNavigation, Pathnames } from 'next-intl/navigation';
By :
Config File
import {Pathnames, LocalePrefix} from 'next-intl/routing';}
Navigation File
import { createLocalizedPathnamesNavigation } from "next-intl/navigation";
import { locales, pathnames, localePrefix } from "./config";
I get this error everytime I use the function getPathname(). For example:
Error: Insufficient params provided for localized pathname.
Template: /blog/[categorySlug]
Params: undefined
The weird thing is since I added 'next-intl/routing', typescript is telling me that I need to use "query" instead of "params" :
const path = getPathname({
locale: locale,
href: {
pathname: "/blog/[categorySlug]",
query: { categorySlug: 'news' },
},
});
But query doesn't seems to work. When I look on the doc or working example, it looks like next-intl is using params and not query but that doesn't match the type of getPathname() for me… Here is what typescript telling me:
Object literal may only specify known properties, and 'params' does not exist in type '{ pathname: string; } & { query?: Record<string, SearchParamValue> | undefined; }'.
Wondering if it's a bug from next-intl. I am really lost here… Thank you for your help!
Upvotes: 2
Views: 267
Reputation: 167
While waiting for a fix, here is what worked for me (by following the answer of Arunmenon) :
const path = getPathname({
locale: locale,
href: {
pathname: pathname,
params: query,
},
} as any);
Upvotes: 0
Reputation: 582
I had the same problem. My current workaround is to use any
:
(router as any).push(
{
pathname,
params
},
{ locale: locale }
);
I was on v3.15.5 and updated to the latest(v3.17.2) but the types haven't been updated yet.
Upvotes: 1