reactjs - Kako napraviti padajući meni pomoću styled-components?


Kako da prepišem ovaj padajući izbornik pomoću styled-components?

<!DOCTYPE html>
<html>
<head>
<style>
.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  padding: 12px 16px;
  z-index: 1;
}

.dropdown:hover .dropdown-content {
  display: block;
}
</style>
</head>
<body>

<h2>Hoverable Dropdown</h2>
<p>Move the mouse over the text below to open the dropdown content.</p>

<div class="dropdown">
  <span>Mouse over me</span>
  <div class="dropdown-content">
  <p>Hello World!</p>
  </div>
</div>

</body>
</html>

Izvor: https://www.w3schools.com/css/tryit.asp?filename=trycss_dropdown_text

Do sada sam probao ovo:

  const NavbarDropdown = styled.div`
    position: relative;
    display: inline-block;

    &:hover {
      display: block;
    }
  `;
  const NavbarDropdownContent = styled.div`
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0, 2);
    padding: 12px 16px;
    z-index: 1;
  `;

export const Navbar: React.FC = () => {
  return (
    <NavbarDropdown>
      <span>Menu</span>
      <NavbarDropdownContent>
        <Link to="/">Dropdown here</Link>
      </NavbarDropdownContent>
    </NavbarDropdown>
  );
};

Ne radi i ne znam što dalje. Molim te, pomozi mi.

P.S. Koristim React-v16.8.6, TypeScript-v3.4.5, Styled-components-v4.2.1

Odgovor #1

Trebali biste postaviti atribut prikaza NavbarDropdownContent prilikom prelaska mišem.

  const NavbarDropdown = styled.div`
    position: relative;
    display: inline-block;

    &:hover {
      display: block;
      >div {
          display: block;
      }
    }
  `;