const Button = styled.button`
display: inline-block;
width: 300px;
background-color: black;
`
const ButtonHref = styled.a`
${Button}
`
所以我有两个样式化的组件。我想继承“按钮”样式,但创建另一个标签。我使用反应情绪。我该怎么办?
答案 0 :(得分:1)
这里有一些选项,可以使用合成,样式化的组件或道具。第二个选项可能是您想要的,但是我也提供了另外两个选项。
1。使用合成
const baseButton = css`
color: white;
background-color: black;
`
const fancyButton = css`
background-color: red;
`
render() {
return (
<div>
<button css={baseButton}></button>
<button css={[baseButton, fancyButton]}></button>
</div>
)
}
第二个按钮将具有baseButton
和specialButton
样式。
或者...
const baseButton = css`
color: white;
background-color: black;
`
const fancyButton = css`
${baseButton};
background-color: red;
`
render() {
return (
<div>
<button css={baseButton}></button>
<button css={fancyButton}></button>
</div>
)
}
2。使用样式化的组件
const Button = styled.button`
color: white;
background-color: black;
`
const Fancy = styled(Button)`
background-color: red;
`
render() {
return (
<div>
<Button>Button</Button>
<Fancy>Fancy</Fancy>
</div>
)
}
这适用于接受className
的{{1}}道具的任何组件。
3。使用button
props
答案 1 :(得分:1)
如果您只想要一种a
样式与您的Button
完全相同的样式,则可以进行<Button as=“a” />