If you wish to switch out the HTML tag (or a custom component) that's rendered whilst keeping all the styled-components styling you've applied to a component, then you can simply use the "as
" prop (v4+) to do this at runtime.
Consider, for example, the following styled-components component:
const MyComponent = styled.div` color: white; background: blue; `;
To render a <button>
for example, instead of the <div>
DOM element (as in the example above), you can use the as
prop like so:
// styled-components 4+ const Foo = () => ( <MyComponent as="button" onClick={() => alert('Hello world!')} > Foo </MyComponent> );
This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.