2017-09-14 45 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)} 
相關問題