2017-04-02 3 views
0

에서 추출 색은 그와 같은 구성 요소 안에 내 material-ui 테마에서 색상을 사용하려면 :재료 UI : 테마

const MyComponent = props => (
    <UsersIcon color={currentTheme.primary1Color} /> 
) 

그래서, 내 요구는 현재 제공되는 테마에서 값을 추출하는 것입니다.

나는 현재 테마 검색 할 컨텍스트를 사용하여,이 사건을 해결하기위한 작업 해결책을 발견하십시오 React 문맥, material-ui에 의해 "후드 아래에"사용

const MyComponent = (props, {muiTheme}) => (
    <UsersIcon color={muiTheme.palette.primary1Color} /> 
) 
contextTypes = { 
    muiTheme: PropTypes.object.isRequired, 
} 

그래서 내 솔루션은 미래를 증거하지를 - MUI의 구현이 바뀔 수 있습니다. 적절한 (또는 권장) 방식으로이를 해결할 방법이 있습니까?

답변

3

예! muiThemeable ..

import muiThemeable from 'material-ui/styles/muiThemeable'; 
const MyComponent = props => (
    <UsersIcon color={props.muiTheme.palette.primary1Color} /> 
) 
export default muiThemeable()(MyComponent) 
답변에 대한

from material-ui docs

1

색상이 런타임에 변경되지 않으면 사용자 정의 구성 요소에서뿐만 아니라 테마를 초기화하는 데 사용되는 전역 객체에 이러한 상수를 저장할 수 있습니다. 이렇게하면 코드를 건조하게 유지하면서 컨텍스트에 의존하지 않아도됩니다.

+0

감사 사용하여, 나는 내 사건을 해결하기 위해 깨끗한 방법 당신과 함께 동의합니다. 그러나 API가 테마를 설명하는 방식은 테마가 동적 일 수 있다고 생각하게합니다. 나는 더 많은 "미래 증거"(그것이 존재하는지 확신 할 수없는 해결책)를 찾고 싶다. – Freez