я задал тот же вопрос, на стилизованных-компоненты системы отслеживания проблем: https://github.com/styled-components/styled-components/issues/494
И нынешнее «решение», которое я нашел, это:
// agnosticStyled.js
import React from 'react'
import styled from 'styled-components'
export default styled(
({tag = 'div', children, ...props}) =>
React.createElement(tag, props, children)
)
И тогда, когда это необходимо:
import React from 'react'
import styled from './agnosticStyled'
const Button = styled`
color: palevioletred;
text-transform: uppercase;
`
export default Button
И наконец:
import React from 'react'
import Button from './Button'
const Component =() =>
<div>
<Button>button</Button>
<Button tag="button">button</Button>
<Button tag="a" href="https://google.com">button</Button>
</div>
export default Component
Вот полный функционирующий пример: https://codesandbox.io/s/6881pjMLQ
Потому что таким образом я все еще вынужден делать: 'константный Button = myButtonStyle (стиль 'кнопка') и' Const LinkButton = myButtonStyle (стиль, «а ') ', когда из ** представления ** точки зрения, это одно и то же! – cl0udw4lk3r