2017-09-14 2 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={(event) => { this.refs.child.getAlert(event); }} 

またはこの

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

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

関連する問題