【发布时间】:2018-04-14 18:14:52
【问题描述】:
在我的 React+StyledComponent 应用程序中,我有一个像这样的主题文件:
主题.js:
const colors = {
blacks: [
'#14161B',
'#2E2E34',
'#3E3E43',
],
};
const theme = {
colors,
};
export default theme;
目前,我可以轻松地使用这些颜色来设置组件的样式,如下所示:
const MyStyledContainer = styled.div`
background-color: ${(props) => props.theme.colors.blacks[1]};
`;
问题是,我如何将 blacks[1] 传递给组件作为要使用的颜色的道具,如下所示:
<Text color="black[1]">Hello</Text>
Text.js 在哪里:
const StyledSpan = styled.span`
color: ${(props) => props.theme.colors[props.color]};
`;
const Text = ({
color,
}) => {
return (
<StyledSpan
color={color}
>
{text}
</StyledSpan>
);
};
Text.propTypes = {
color: PropTypes.string,
};
export default Text;
目前,上述内容正在静默失败并在 DOM 中呈现以下内容:
<span class="sc-brqgn" color="blacks[1]">Hello</span>
关于如何让它发挥作用的任何想法?谢谢
【问题讨论】: