首先,对这个不好的称呼感到抱歉。我无法制定出与我的问题有关的合适的答案。

我有一个与react代码有关的小问题。
My Child组件作为道具传递了onValueChanged函数。父级的父级已将此函数作为道具提供给父级。
当Child触发onValueChanged函数时,如何调用我的specialFunction。

(!)我无法在Child中扩展onClick调用,该调用会触发onValueChanged函数。子代码无法更改。

class Parent extends React.Component {
  constructor(props) {
    super(props);
  }

  specialFunction(){
    /* do something */
  }

  render() {
    return (
      <Child onValueChanged={this.props.onValueChanged} />
    );
  }
}

class Child extends React.Component {
  constructor(props) {
    super(props);
  }

  render() {
    return (
        <Button onClick={this.prop.onValueChanged} />
    );
  }
}

最佳答案

插入另一个函数并将其传递下去(然后触发您的实例方法):

 <Child onValueChanged={(...args) => {
    this.specialFunction();
    this.props.onValueChanged(...args);
 }} />

10-05 20:43