useParams Hook ( React-Router-Dom)

ကျတော်တို့ react-router ကို အသုံးပြုပြီးတော့ route တွေကို ကျတော်တို့ page ချိန်းတာတို့ လုပ်တာကို‌

လေ့လာခဲ့ပြီးပါပီ နောက်ထပ်တခုကို ကျတော်တို့ ဆက်လေ့လာသွားကြရအောင် အဲဒါက ဘာလည်း ဆိုတော့

ကျတော်တို့ က လက်ရှိ ဘယ် route ကို ရောက်နေတာလည်းဆိုပြီးတော့ ပြန်ပြီးတော့ သိဖို့လိုအပ်တဲ့အခါမျိုးတွေ

ရှိပါတယ်

မြင်သာအောင်ပြောရရင် ဘယ်လိုအခြေအနေမျိုးတွေမှာဆိုရင်တော့ ကျတော်တို့ e-commerce page

တခုကို မြင်ကြည့်ရအောင်

အဲဒီမှာ ကျတော်တို့ item တွေအများကြီးရှိတဲ့အခါမှာ ကျတော်တို့ လိုချင်တဲ့ item ကိုနိပ်လိုက်တဲ့အချိန်မှာ

အပေါ်က route မှာ ဒီလိုလေးဖြစ်သွားတာကိုမြင်ရပါလိမ့်မယ်

item/1

ဒီလိုလေးတွေမျိုးပေါ့ အဲဒါက ဘာဖြစ်သွားတာလည်းဆိုတော့ ကျတော်တို့က id လေးတွေ တနည်းပြောရရင်

dynamic route တွေပေါ့ဗျ အဲလိုမျိုးဖြစ်သွားတဲ့ id တွေ dynamic တွေဖြစ်တဲ့ route ကို ကျတော်တို့က

ဘယ် id ဘယ် name နဲ့ရောက်နေတာပါဆိုပြီးတော့ ပြန်သိစေချင်တဲ့အခါမှာ useParams hook

ကိုအသုံးပြုပေးရပါတယ်

ကဲ ကျတော်တို့ ကုဒ်လေးတွေကို ဒီလိုလေးအရင်ရေးလိုက်ကြရအောင်

function DynamicRoute () {
    return (
        <div>DynamicRoute</div>
    )
}
export default DynamicRoute 

အရင်ဆုံး ကျတော်တို့ component တခုကို တည်ဆောက်လိုက်ပါမယ်

အဲဒီအတွက် ကျတော်တို့က Route တွေမှာ သူ့ကို ဒီလိုလေး အသုံးပြုထားလိုက်ပါမယ်

<Route path="/product/:id" element={<DynamicRoute />}></Route>

အဲဒီမှာ ကျတော်တို့ စတင်ပြီးတော့ မြင်ရမှာပါ product ရဲ့ အနောက်မှာ full colon နဲ့ id လေးကိုရေးထားတာပါပဲ

အဲလိုမျိုးရေးထားလိုက်ရင် react router က ဘယ်လိုမျိုး မြင်တာလည်းဆိုတော့ ဒီ route က dynamic

ပြောင်းလဲ ပြီးတော့လာနိုင်တယ်ဆိုပြီးတော့ သူက သိပါတယ်

အဲဒါကို ကျတော်တို့က browser မှာ သွားစမ်းကြည့်ရင် ဒီလိုလေးမြင်ရပါလိမ့်မယ်

ဒီလိုလေးဆိုရင် ကျတော်တို့ နားလည်သွားမယ်ထင်ပါတယ်

ဆက်ပြီးတော့ ကျတော်တို့ hook လေးကိုအသုံးပြလိုက်ကြရအောင်

အရင်ဆုံး ဒီလိုလေးရေးလိုက်ပါမယ်

import { useParams } from 'react-router-dom'

သူ့ကိုအသုံးပြုရင် သူက object value တစ်ခုကို return ပြန်ပေးပါတယ် အဲဒါကို ကျတော်တို့

ဒီလိုလေးရေးလိုက်ပါမယ်

const params = useParams()
  console.log(params)

ဒီလိုလေးရေးပြီးတော့ browser console မှာသွားကြည့်ရင် ဒီလိုလေးမြင်ရပါမယ်

ကျတော်တို့ Route မှာရေးခဲ့တဲ့ :id လေးက ဒီအချိန်မှာ object ရဲ့ key အနေနဲ့ ဝင်လာပြီးတော့ ကျတော်တို့

တကယ့် route ရဲ့ number ကို ကတော့ string type အဖြစ် object value အနေနဲ့ ပြပေးပါတယ်

သူ့ကို ကျတော်တို့က ရသွားပြီးဖြစ်တဲ့အတွက် ကျတော်တို့ ကြိုက်တဲ့ id number ကိုပြောင်းပါစေ

သူက ဒီလိုလေး ပြောင်းလဲပြီးတော့ ပြသွားပါလိမ့်မယ်

ဒီလောက်ဆိုရင် နားလည်သွားမယ်ထင်ပါတယ်

ကျတော်တို့ သူ့ကို browser မှာ ပြစေချင်ရင်ဒီလိုလေးရေးလိုက်ရင် သူက ပြနေပါလိမ့်မယ်

import React from 'react'

import { useParams } from 'react-router-dom'

function DynamicRoute() {
  const params = useParams()
  console.log(params)
  return (
    <div>
      <h1>{params.id}</h1>
    </div>
  )
}

export default DynamicRoute

params က object type ဖြစ်တဲ့အတွက် ကျတော်တို့ သူ့ကို destructuring ပုံစံနဲ့ ရေးလို့လည်းရပါတယ်

ဒီလိုလေးဖြစ်သွားမှာပါ

import React from 'react'

import { useParams } from 'react-router-dom'

function DynamicRoute() {
  const params = useParams()
  console.log(params)
  const {id} = params;
  return (
    <div>
      <h1>{id}</h1>
    </div>
  )
}

export default DynamicRoute

ဒီလောက်ဆိုရင်တော့ ကျတော်တို့ react-router ကိုတော်တော်လေး နားလည်သွားမယ်ထင်ပါတယ်

Last updated