将函数A作为prop传递,并在孩子调用A

时间:2019-07-06 16:44:17

标签: javascript reactjs

首先,对不起,标题不好。我无法制定出与我的问题有关的合适的答案。

我有一个与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} />
    );
  }
}

1 个答案:

答案 0 :(得分:1)

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

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