如何在componentDidMount中触发子组件事件

时间:2016-01-11 13:15:55

标签: reactjs

鉴于以下内容,我如何在componentDidMount中触发Foo组件的事件:

import React, {Component} from 'react';
import Foo from 'Foo';

export default class Bar extends Component {

  componentDidMount() {
    // How to trigger the onChange event for this.refs.foo
  }

  render() {

    const onFooChanged= (resultFromFoo) => {
        // do stuff
    };

    return (
      <div>
        <Foo ref="foo" onChange={onFooChanged} />
      </div>
    );
  }
}

2 个答案:

答案 0 :(得分:2)

如果你将onChange函数作为道具注入,你只需要访问道具并调用它。

componentDidMount() {
    this.refs.foo.props.onChange()
  }

我添加了一个小提琴: https://jsfiddle.net/69z2wepo/27193/

答案 1 :(得分:0)

您也可以将getAttributeNS()函数移出onChange方法并直接调用它。由于该方法位于render类,因此无需通过Bar组件来调用它。

Foo