прокрутка реакции со стилизованным компонентом не работает

#javascript #css #reactjs #styled-components

Вопрос:

Я использую react со стилизованным компонентом и react-прокрутку, чтобы создать простое меню. Я хочу сделать одностраничное приложение. Все в порядке, но когда я перехожу к определенному разделу своей страницы, он должен показать мне, что вкладка активирована на моем навигаторе. но это вообще не работает.

 <Nav>
        <NavBarCotainer>
          <NavMenu>
            <NavItem>
              <NavLink
                to="about"
              >
                About Us
              </NavLink>
            </NavItem>
          </NavMenu>
        </NavBarCotainer>
      </Nav>
 

и в моем компоненте стиля у меня есть

 export const NavLink = styled(LinkS)`
  color: blue;
  amp;:active {
    color: red;
  }
`;
 

это работает, когда я нажимаю на любую из ссылок, она быстро меняется на красную, но снова становится синей, и когда я посещаю этот раздел, она вообще не становится красной.

если я изменю это на:

   amp;.active {
    color: red;
  }

import { Link as LinkS } from "react-scroll";
 

это вообще ничего не даст, когда я посещаю раздел страницы, он всегда будет синим.

Как я могу исправить эту проблему, что я делаю не так?

Ответ №1:

Вы можете использовать модуль radium для реализации псевдо-css.

 import Radium from 'radium'

const style = {
  color: 'blue',
  ':active': {
    color: 'red'
  }
};

const MyComponent = () => {
  return (
    <Nav>
    <NavBarCotainer>
      <NavMenu>
        <NavItem>
          <NavLink
            to="about"
            style={style}
          >
            About Us
          </NavLink>
        </NavItem>
      </NavMenu>
    </NavBarCotainer>
  </Nav>
  );
};

const MyStyledComponent = Radium(MyComponent);