Apply styled component style to a third party components
·
Answer a question
I am learning react and I started by using styled-components and react-router dom
But I face difficulties apply my custom styled component to an existing component not created by me.
Here is the code:
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;
The problem is that color: red is not applied, but margin: 10px is applied in the view. Why so?
Answers
You can simplify styles. No need to wrap a link with another component. Simple use styled-components extending with styled() function:
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;
更多推荐
所有评论(0)