我有多个以独特颜色显示的颜色输入。他们从嵌套对象的助手中获得价值。当我尝试更新该值时,什么也没有发生。我的最终目标是更改颜色输入并将上述颜色应用于css变量,以便更改特定的语法突出显示颜色。
这里是项目的codesandbox。
ColorPicker.js-在两个位置更改[[ColorSwatch和HexInput组件。
来自onChange={props.onColorChange}
to
onChange={props.onChange}
完整的ColorPicker.js
return ( <ColorPickerContainer> <p>{props.label}</p> <ColorSwatch type="color" value={props.value} onChange={props.onChange} /> <HexInput type="text" value={props.value} onChange={props.onChange} /> </ColorPickerContainer> );
在ColorPickerSection.jsx中]
function ColorPickerSection() {
const [colorVal, setColorVal] = useState(colors);
const onColorChange = (e, colorValKey) => {
setColorVal({
...colors,
[colorValKey]: e.target.value
});
};
console.log(colorVal);
return (
<div>
{Object.keys(colorSelect).map(groupName => {
return (
<div>
<GroupName>{groupName}</GroupName>
{Object.keys(colorSelect[groupName]).map(color => {
return (
<ColorPicker
key={color}
label={color}
value={colorVal[color]}
onColorChange={e => onColorChange(e, color)}
/>
);
})}
</div>
);
})}
</div>
);
}
在ColorPicker.jsx中
function ColorPicker(props) {
return (
<ColorPickerContainer>
<p>{props.label}</p>
<ColorSwatch
type="color"
value={props.value}
onChange={props.onColorChange}
/>
<HexInput
type="text"
value={props.value}
onChange={props.onColorChange}
/>
</ColorPickerContainer>
);
}