我有一个 React 组件,其中包括一个颜色选择器和一个具有不同区域的 SVG,这些区域可以彼此独立地填充。我的目标是能够单击颜色选择器中的一种颜色,然后单击 SVG 的一个区域,然后在该区域中填充所选颜色。
这是我的组件代码
import React, { useState } from "react";
import { GithubPicker } from "react-color";
//components
import "./css/CustomCreation.css";
function CustomCreation() {
const [color, setColor] = useState("");
const colorList = ["#000000", "#ffffff", "#ff0000"];
return (
<div>
<div>
<GithubPicker
colors={colorList}
color={color}
onChange={(updatedColor) => setColor(updatedColor.hex)}
width="100px"
/>
<div>You selected {color}</div>
</div>
<svg
version="1.0"
xmlns="http://www.w3.org/2000/svg"
width="200"
viewBox="0 0 370.000000 1000.000000"
preserveAspectRatio="xMidYMid meet"
>
<g transform="translate(0.000000,1000.000000) scale(0.100000,-0.100000)">
<g className="outline">
<path
id="outline"
fill="black"
/>
</g>
<g className="headwear">
<path
id="cap"
/>
<path
id="brim"
/>
</g>
<g className="skin">
<path
id="face"
/>
<path
id="wrist"
/>
</g>
<g className="top">
<path
id="top"
/>
</g>
<g className="pants">
<path
id="pants"
/>
</g>
<path
class="gap"
id="gap"
fill="white"
/>
<g className="shoes">
<path
id="rightshoe"
/>
<path
id="leftshoe"
/>
</g>
</g>
</svg>
</div>
);
}
export default CustomCreation;
如果我像这样改变一行
<g className="headwear" fill={color}>
相应的className将成功填充为选择的颜色。
有什么办法可以让标签中的 onClick 发挥作用?
大话西游666
慕慕森
相关分类