React组件中的输入值只读

问题描述 投票:-4回答:3

我有多个以独特颜色显示的颜色输入。他们从嵌套对象的助手中获得价值。当我尝试更新该值时,什么也没有发生。我的最终目标是更改颜色输入并将上述颜色应用于css变量,以便更改特定的语法突出显示颜色。

这里是项目的codesandbox

javascript css reactjs state javascript-objects
3个回答
0
投票

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> );


0
投票
只需进行以下更改:

在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> ); }


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.