Ad
Why Do I See Passed Props In HTML Output In A React App?
I have a simple Text component created with Styled components:
const Text = styled.p`
color: ${({color, theme}) => color ? theme.colors[color] : 'inherit'};
`;
It works, however for some reason I can see the color
prop passed in an HTML output in console.
<p color="gray700" class="sc-ifAKCX GLYnD">2 active deals</p>
Weird is that if I rename the prop from color
to variant
, it doesn't appear in the console:
<p class="sc-ifAKCX GLYnD">2 active deals</p>
What does this depend on?
Ad
Answer
Have been trying to figure out this for over an hour but finally I found the reason.
The color
prop is being passed down to your HTML because color
is an attribute of the <font>
HTML tag and thus this is the expected behavior.
Therefore I would avoid using color
as prop for styled-components/React to avoid passing down unnecessary HTML attributes
Ad
source: stackoverflow.com
Related Questions
- → How to update data attribute on Ajax complete
- → October CMS - Radio Button Ajax Click Twice in a Row Causes Content to disappear
- → Octobercms Component Unique id (Twig & Javascript)
- → Passing a JS var from AJAX response to Twig
- → Laravel {!! Form::open() !!} doesn't work within AngularJS
- → DropzoneJS & Laravel - Output form validation errors
- → Import statement and Babel
- → Uncaught TypeError: Cannot read property '__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' of undefined
- → React-router: Passing props to children
- → ListView.DataSource looping data for React Native
- → Can't test submit handler in React component
- → React + Flux - How to avoid global variable
- → Webpack, React & Babel, not rendering DOM
Ad