Cześć! Mam do oprogramowania zaznaczenie aktywnego elementu w pasku menu i jest on z animacją. Postanowiłem po kliknięciu dodać klasę active z animacją do elementu jednak każdy element przenosi do innej strony i powoduje przeładowanie całego DOM w tym komponentu z menu co daje brak dodanej klasy. Próbowałem rozwiązać problem poprzez local storage(zapisywałem pełną klasę elementu który ma active a później ją odczytywałem w konstruktorze tj. przy ponownym ładowaniu na innej stronie). Jednak to rozwiązanie powoduje że animacja obrazka pojawia się dopiero po załadowaniu elementów DOM a jest w niej zawarte uniesienie się elementu menu i daje to efekt podskakującego elementu. Czy jest możliwość dodania klasy już w odpowiednim momencie przy ładowaniu nowej strony? Oto mój kod:

 class MenuBar extends React.Component {
    constructor() {
      super();
    this.getActiveTab();
    }

    setActiveTab(e){
        let elements = document.querySelectorAll('.menu-icon');
        elements.forEach(link => {
            if(e.target.className === link.className){
                //save clicked element class to local storage
                localStorage.setItem('activeTabClass',link.className);
                //add active class
                e.target.className.add('icon-active');
            }
        })
    }

    getActiveTab() {
        //read activeTab data for state before reload or go to next link
        let activeTab = localStorage.getItem('activeTabClass');
        let elements = document.querySelectorAll('.menu-icon');
        elements.forEach(link => {
            if(link === activeTab){
                link.className.add('icon-active');
            }
        });
        //set local storage as empty for non menu elements on the page
        localStorage.setItem('activeTabClass','');
    }

    render() {
      return <nav classname="nav menu-bar">
            <a href='/page1/terms'><i classname="menu-icon icon-1" onClick={this.setActiveTab.bind(this)}/></a>
            <a href='/page2/index'><i classname="menu-icon icon-2" onClick={this.setActiveTab.bind(this)}/></a>
            <a href='/page3/about'><i classname="menu-icon icon-3" onClick={this.setActiveTab.bind(this)}/></a>
            <a href='/page4/photos'><i classname="menu-icon icon-4" onClick={this.setActiveTab.bind(this)}/></a>
            </nav>;
    }
  };

  export default MenuBar;

Ogólny efekt ma być tak że animacja pojawia się po kliknięciu obrazkowego elementu menu, strona przechodzi na podany URL i stan tego elementu jest taki jak ma być po animacji elementu z klasą active czyli obrazek lekko do góry. Po prostu wyróżnienie wybranego elementu i zachowanie takiego jego stanu po przejściu na stronę.