Comment obtenir les références d'un autre composant de Réagir JS

Le code dans l'Application principale composante est comme suit :

class App extends Component {
  componentDidMount(){
      console.log(this.ref);
      debugger;
  }

  render() {

    return (
        <div>
            <Header/>
            {this.props.children}
            <Footer/>
        </div>
    );
  }
}

Et un des éléments qui rend avec {this.props.children} est en page d'Accueil, où sont les articles avec des refs.

Le code d'une page d'Accueil se présente comme suit :

render(){
     return (
        <div className="homeMain">
            <section ref="info"> <Info/> </section>

            <section ref="contact"> <Contact /> </section>
       </div>
    );
}

Comment puis-je obtenir ces refs à l'intérieur de l'App composant pour être en mesure de les passer comme des accessoires à-tête?

Je suis en train de le faire à l'intérieur de componentDidMount en Application de la composante, mais console.log(this.refs) est vide.

Des conseils?

MODIFIER

L'ensemble de l'Application de la composante :

import React, {Component} from 'react';
import Footer from './common/footer';
import Header from './common/header';
import {bindActionCreators} from 'redux';
import {connect} from 'react-redux';
import * as actions from './components/homepage/login/authActions';
class App extends Component {
componentDidMount(){
console.log(this.props.children.refs);
debugger;
}
render() {
return (
<div>
<Header route={this.props.location.pathname}
language={this.props.language.labels}
authenticated={this.props.authenticated}
signoutAction={this.props.actions}
offsets={this.props.offsets}
/>
{React.cloneElement(this.props.children, {
currentLanguage: this.props.language.labels,
authenticated: this.props.authenticated
})}
<div className="clearfix"/>
<Footer currentLanguage={this.props.language.labels}/>
</div>
);
}
}
function mapStateToProps(state, ownProps) {
return {
language: state.language,
authenticated: state.auth.authenticated,
offsets: state.offsets
};
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(actions, dispatch)
};
}
export default connect(mapStateToProps, mapDispatchToProps)(App);
this.refs montrera tous les refs de actuelle composant et que vous n'avez pas défini de toutes les refs.
Mais qu'elles sont définies à l'un des composants enfants. Comment puis-je les obtenir?
tu veux dire passer refs d'un enfant à un parent via des accessoires? vers le haut?
Vous ne pouvez pas et vous ne devriez pas. Pouvez-vous nous dire exactement ce que vous essayez d'atteindre?
Si vous voulez faire quelque chose comme cela, je pense que vous devriez définir une méthode sur les enfants de la composante et l'appel à la méthode du parent via refs, un autre moyen pourrait être la mise en œuvre d'un événement de l'émetteur

OriginalL'auteur Boky | 2016-10-17