2017-09-14 46 views
0

我在这里有问题。反应如何获得事件时调用子方法?

当我刚刚打电话从parrent子方法:

class Parent extends Component { 
render() { 
    return (
    <div> 
     <Child ref="child" /> 
     <button onClick={() => this.refs.child.getAlert()}>Click</button> 
    </div> 
); 
} 
} 

class Child extends Component { 
getAlert() { 
    alert('clicked'); 
} 
render() { 
    return (
    <h1>Hello</h1> 
); 
} 
} 

这是确定的,但如果我想获得活动对象,该事件是undentified。

class Parent extends Component { 
render() { 
    return (
    <div> 
     <Child ref="child" /> 
     <button onClick={() => this.refs.child.getAlert()}>Click</button> 
    </div> 
); 
} 
} 

class Child extends Component { 
getAlert(event) { 
    alert(event.target); 
} 
render() { 
    return (
    <h1>Hello</h1> 
); 
} 
} 

此处出错。事件未被识别。然后我在父母中调用相同的函数都很好。 我如何从小孩打电话给它并将事件传递给它?谢谢。

回答

0

你是不是传递事件参数,如错误说。

改变这一点;

onClick={() => this.refs.child.getAlert()} 

onClick={(event) => { this.refs.child.getAlert(event); }} 

或该

onClick={this.refs.child.getAlert.bind(this)} 
相关问题