Reputation: 7145
I am working on code refactoring on a React project. It has components like this
import * as React from "react";
function SvgPage(props) {
return (
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg> );
}
export default SvgPage;
These SVG files render without any issue but in the console, it gives me the error
Warning: Invalid DOM property
stroke-width
. Did you meanstrokeWidth
?
How do I get rid of these console warnings? I search google and find SVGR library. But I am not sure how to use it to fix the problem.
any help!
Thanks in advance! =)
Upvotes: 7
Views: 10617
Reputation: 21
so you have to change attributes inside the svg tag to use camel case, like
stroke-width="4"
as strokeWidth="4"
and
stroke-linecap=""
as strokeLinecap=""
Upvotes: 2
Reputation: 11915
From the docs,
Since JSX is closer to JavaScript than to HTML, React DOM uses
camelCase
property naming convention instead of HTML attribute names.For example,
class
becomesclassName
in JSX, andtabindex
becomestabIndex
.
Replace hyphenated prop names with their camelCase versions.
<circle cx="50" cy="50" r="40" stroke="green" strokeWidth="4" fill="yellow" />
Upvotes: 10