Ratkaistu: ActiveClassName reagoi reititin

Suurin ongelma, joka liittyy ActiveClassNameen React Routerissa, on, ettรค se ei pรคivitรค aktiivista luokkaa automaattisesti, kun reitti muuttuu. Tรคmรค tarkoittaa, ettรค kehittรคjien on pรคivitettรคvรค aktiivinen luokka manuaalisesti aina, kun reitti muuttuu, mikรค voi olla aikaa vievรครค ja virhealtista. Lisรคksi, jos useita reittejรค on sisรคkkรคin toistensa sisรคllรค, voi olla vaikeaa seurata, mikรค reitti on tรคllรค hetkellรค aktiivinen ja mitรค luokkia kuhunkin elementtiin tulisi soveltaa.

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

1. komponenttia kรคytetรครคn luomaan Reactissa reititin, jonka avulla kรคyttรคjรคt voivat navigoida eri sivujen vรคlillรค.

2. komponenttia kรคytetรครคn linkin luomiseen, jota napsautettuna kรคyttรคjรค siirtyy "to"-attribuutissa mรครคritetylle sivulle (tรคssรค tapauksessa "/about").

3. ActiveClassName-attribuutti mรครคrittรครค, mitรค luokkaa tulee kรคyttรครค, kun linkki on aktiivinen (tรคssรค tapauksessa "aktiivinen").

Mikรค on NavLink

NavLink on React-komponentti, jota kรคytetรครคn React Routerissa luomaan navigointilinkki sovelluksen eri reittien vรคlille. Se on samanlainen kuin Linkki-komponentti, mutta se lisรครค tyyliattribuutteja renderรถityyn elementtiin, kun se vastaa nykyistรค URL-osoitetta. NavLink tarjoaa myรถs ActiveClassName-ehdotuksen, jota voidaan kรคyttรครค luokan nimen lisรครคmiseen, kun linkin reitti on aktiivinen.

ActiveClassName-attribuutti

ActiveClassName-attribuuttia React Routerissa kรคytetรครคn mรครคrittรคmรครคn luokan nimi, jota kรคytetรครคn elementtiin, kun se vastaa nykyistรค URL-osoitetta. Tรคmรค on hyรถdyllistรค muotoiltaessa linkkejรค tai navigointikohteita, kun ne vastaavat nykyistรค reittiรค. Sitรค voidaan kรคyttรครค myรถs lisรคtyyliin lisรครคmiseen elementteihin, jotka eivรคt liity suoraan reitittรคmiseen, kuten korostamaan tรคllรค hetkellรค aktiivisena olevaa vรคlilehteรค navigointipalkissa.

Miksi activeClassName ei toimi

ActiveClassName on React Routerin ominaisuus, jonka avulla voit lisรคtรค luokan navigointivalikon aktiiviseen linkkiin. Valitettavasti se ei toimi React Routerissa, koska se luottaa selaimen historiasovellusliittymรครคn, joka ei ole kรคytettรคvissรค React Routerissa. Tรคmรค tarkoittaa, ettรค React Router ei voi havaita, milloin kรคyttรคjรค on napsauttanut linkkiรค, ja kรคyttรครค ActiveClassNamea vastaavasti.

Related viestiรค:

Jรคtรค kommentti