이런 문제점을 styled-components를 사용한다면 contextAPI를 통해 한 번에 해결할 수 있다.
styled-components는 ThemeProvider 를 통해서 강력한 theming 전략을 제공한다.
context
를 사용해서 모든 리액트 컴포넌트에게 theme 속성을 전달하는 역할을 수행한다.
import {ThemeProvider} from 'styled-components'
const theme = {
color:red
}
const App = () => {
return (
<ThemeProvider them={them}>
<Test/>
</ThemeProvider>
)
}
App 컴포넌트에서 최상단의 태그가 이므로 하위 자식의 모든 컴포넌트는 의 props로 넘어가는 thme 값을 사용할 수 있게 된다.
import styled, {ThemeProvider} from 'styled-components';
const Button = styled.button`
background-color : ${(props)=>props.theme.color}
`
const Test = () =>{
return (
<Button>버튼 테스트</Button>
)
}