Nalutas: activeClassName react router

Ang pangunahing problema na nauugnay sa activeClassName sa React Router ay hindi nito awtomatikong ina-update ang aktibong klase kapag nagbago ang ruta. Nangangahulugan ito na dapat na manu-manong i-update ng mga developer ang aktibong klase sa tuwing nagbabago ang isang ruta, na maaaring magtagal at madaling magkamali. Bukod pa rito, kung maraming ruta ang nakapugad sa isa't isa, maaaring maging mahirap na subaybayan kung aling ruta ang kasalukuyang aktibo at kung anong mga klase ang dapat ilapat sa bawat elemento.

<Router>
  <Link to="/about" activeClassName="active">About</Link>
</Router>

1. Ang component ay ginagamit upang lumikha ng isang router sa React na nagpapahintulot sa mga user na mag-navigate sa pagitan ng iba't ibang mga pahina.

2. Ang component ay ginagamit upang lumikha ng isang link na kapag na-click, ay magdadala sa user sa pahinang tinukoy sa "to" attribute (sa kasong ito, "/about").

3. Tinutukoy ng attribute na activeClassName kung anong klase ang dapat ilapat kapag aktibo ang link (sa kasong ito, "aktibo").

Ano ang NavLink

Ang NavLink ay isang bahagi ng React na ginagamit sa React Router upang lumikha ng isang link sa nabigasyon sa pagitan ng iba't ibang mga ruta sa isang application. Ito ay katulad ng bahagi ng Link, ngunit nagdaragdag ito ng mga katangian ng pag-istilo sa na-render na elemento kapag tumugma ito sa kasalukuyang URL. Nagbibigay din ang NavLink ng activeClassName prop na maaaring magamit upang maglapat ng pangalan ng klase kapag aktibo ang ruta ng link.

attribute ng activeClassName

Ang attribute na activeClassName sa React Router ay ginagamit upang tukuyin ang pangalan ng klase na ilalapat sa elemento kapag tumugma ito sa kasalukuyang URL. Ito ay kapaki-pakinabang para sa pag-istilo ng mga link o navigation item kapag tumugma ang mga ito sa kasalukuyang ruta. Maaari rin itong magamit upang magdagdag ng karagdagang pag-istilo sa mga elemento na hindi direktang nauugnay sa pagruruta, gaya ng pag-highlight sa kasalukuyang aktibong tab sa isang navigation bar.

Bakit hindi gagana ang activeClassName

Ang ActiveClassName ay isang feature ng React Router na nagbibigay-daan sa iyong magdagdag ng klase sa aktibong link sa isang navigation menu. Sa kasamaang palad, hindi ito gagana sa React Router dahil umaasa ito sa history API ng browser, na hindi available sa React Router. Nangangahulugan ito na hindi matukoy ng React Router kapag nag-click ang isang user sa isang link at ilapat ang activeClassName nang naaayon.

Kaugnay na mga post:

Mag-iwan ng komento