将样式化的组件样式应用于第三方组件

Hai*_*iri 1 reactjs styled-components react-router-dom

我正在学习反应,因此我开始使用styled-componentsreact-router dom

但是我面临困难,无法将自定义样式的组件应用于我自己创建的现有组件。

这是代码:

import React from "react";
import { NavLink } from "react-router-dom";
import styled from "styled-components";

const NavStyle = styled.div`
  color: red;
  margin: 10px;
`;

const Navigation = () => {
  return (
    <div>
      <NavStyle>
        <NavLink to="/">Home</NavLink>
      </NavStyle>
      <NavLink to="/about">About</NavLink>
      <NavLink to="/contact">Contact</NavLink>
    </div>
  );
};

export default Navigation;
Run Code Online (Sandbox Code Playgroud)

问题是color: red没有应用,但是margin: 10px在视图中应用了。这样吗

Kor*_*ort 5

您可以简化样式。无需使用其他组件包装链接。简单易用的styled-components扩展styled()功能:

import React from "react";
import { NavLink } from "react-router-dom";
import styled from "styled-components";

const StyledNavLink = styled(NavLink)`
  color: red;
  margin: 10px;
`;

const Navigation = () => {
  return (
    <div>
      <StyledNavLink to="/">Home</StyledNavLink>
      <StyledNavLink to="/about">About</StyledNavLink>
      <StyledNavLink to="/contact">Contact</StyledNavLink>
    </div>
  );
};

export default Navigation;
Run Code Online (Sandbox Code Playgroud)