繁体   English   中英

如何在单击按钮时获取颜色选择器的颜色?

[英]How do I get the color of a color-picker on button click?

背景:

当我单击我的onSubmit按钮时,我试图获取颜色选择器的当前值。 颜色选择器位于一个单独的组件中。

问题:

当我通过颜色选择器更改颜色时,我收到一条错误消息: TypeError: _this.props.setSelectedColor is not a function

内部具有颜色选择器的组件:

function myFunctionA(props) {

  const [selectedColor, setSelectedColor] = useState(null)

  const handleSubmit = useCallback(() => {
    console.log(selectedColor);
  });

  return (
    <>
      <Form onSubmit={handleSubmit}>
        <MyColorPicker setSelectedColor/>
      </Form>
    </>
  )
}

颜色选择器代码:

class MyBlockPicker extends React.Component {
  state = {
    background: this.props.background,
  };

  handleChangeComplete = (color) => {
    console.log(color);
    this.setState({ background: color.hex });
    this.props.setSelectedColor(color.hex)
  };

  render() {
    return (
      <BlockPicker
        color={this.state.background}
        onChangeComplete={this.handleChangeComplete}
      />
    );
  }
}

export default MyBlockPicker;

关于如何解决的任何想法?

如果您想将 function 传递给孩子,您需要这样做:

<MyColorPicker setSelectedColor={setSelectedColor} />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM