2017-11-17 18 views
0

私は反応ルータのルート要素の子の参照にアクセスしようとしますが、動作しません。ルートリアクト要素の子の 'ref'を取得

<Route path={path} render={() => (
      <Child ref={ (el => this.$child = el)} /> 
     )} /> 

コンソールログ:"Warning: Stateless function components cannot be given refs. Attempts to access this ref will fail."

答えて

2

あなたはそれがルート要素の内部だにもかかわらず、子コンポーネントのrefを得ることができる必要があります。ここでの問題は、あなたのChild要素がおそらくrefをサポートしないステートレス関数のコンポーネントであることです。機能コンポーネントにはインスタンスがないためです。

子コンポーネントを関数ではなくES6クラスとして定義します。

あなたはもっとここにこのことについて読むことができます:https://reactjs.org/docs/refs-and-the-dom.html#refs-and-functional-components

+0

感謝を!問題は、私の子供が単純なクラスだけでなく、 "default withRouter(Child)"をエクスポートすることでした! –

関連する問題