سلام
توی ورژن قدیمی که از پیج دایرکتوری استفاده میکردم به راحتی از این طریق به کوئری دسترسی داشتم :
import {useRouter} from 'next/router'
const router = useRouter();
console.log(router.query) //?add-product
اما الان دارم از اپ دایرکتوری استفاده میکنم و از هوک های خود next هم استفاده میکنم ولی خود کوئری رو برنمیگردونه
چه جوری توی ورژن جدید همون خروجی قبل رو بگیرم؟
سلام
فکر میکنم کد زیر مد نظرتون هست
برای مسیر روتی که رفتید کد زیر
import { usePathname } from "next/navigation";
const pathname = usePathname();
برای کوئری سرچ هاتون کد زیر
import { useSearchParams} from "next/navigation";
const searchParams = useSearchParams();
const params = new URLSearchParams(searchParams)
usePathName فقط مسیر روت رو نشون میده و کوئری رو نشون نمیده، مثلا توی روت test :
'use client'
import { usePathname, useRouter, useSearchParams } from "next/navigation"
const Test = () => {
const router = useRouter()
const pathName = usePathname()
function handleClick() {
router.push('/test?url-query')
console.log(pathName) // test
}
return (
<div className="h-full w-full flex justify-center items-center">
<button
onClick={handleClick}
>Click for Query
</button>
</div>
)
}
با کلیک روی دکمه اون کوئری اضافه بشه
من چه جوری میتونم خود اون کوئری رو بگیرم
قبلا با router.query این مقدار برمیگشت
@salar.mohammad2013
همون کد دومی که فرستادم بود ولی به صورت key ,value بود
طبق مستندات خود نکس به شکل زیر شما میتونی کوئری رو بگیری
import { useSearchParams } from "next/navigation";
const searchParams = useSearchParams()
const search = searchParams.get('search')
console.log(search)
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟