输入值在React组件中是只读的

时间:2019-12-10 05:13:47

标签: javascript css reactjs state javascript-objects

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

这里是项目的codesandbox

3 个答案:

答案 0 :(得分:0)

ColorPicker.js -更改两个地方的 ColorSwatch HexInput 组件。

来自

ccTLDs

 #include <stdio.h>

 // ...

 // Do this for each line
 size_t num;
 sscanf( line_string, "+CMGR: \"REC READ\",\"+%lu\",", &num);

完整的ColorPicker.js

onChange={props.onColorChange}

答案 1 :(得分: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>
  );
}

答案 2 :(得分:0)

在这里检查   https://codesandbox.io/s/react-heykm

像这样更改HexInput Onchange方法:

          onChange={ e => props.onChange(e, props.label)}

像这样更改ColorPicker道具

         <ColorPicker
              key={color}
              label={color}
              value={colorVal[color]}
              onChange={onColorChange}
            />