我在我的应用程序中有一个按钮组件,我想使其具有主题化。 为此,我创建了一个ThemeableButton.js,并且我想使用样式(Button)重写Button组件。重写第三方组件
我不使用内联样式,所以我的想法是,我的Button组件没有定义任何样式,也不知道有关样式组件的任何内容。
我以为overriding 3rd party components会做这项工作,但它不适合我。 我创建了一个webpackbin示例here。
我的问题是在ThemeableButton.js。这里:
const StyledButton = styled(Button)`
background: ${(props) => props.theme.primaryColor };
border: 2px solid ${(props) => props.theme.borderColor };
color: ${(props) => props.theme.textColor };
`;
我期待这个工作,重写我的Button.js组件并添加样式道具。 当然,如果我定义StyledButton这样
const StyledButton = styled.button
它的工作原理,但这个想法是重写我的部件。我将有更复杂的组件,我不想使用样式化的构造函数进行定义。
如何使这项工作的任何想法?
谢谢!
这是正确的答案! :)(风格 - 组件共同创造者在这里) – mxstbr
新的链接可以从https://www.styled-components.com/docs/basics#styling-any-components –