Adding ref with React.cloneElement() fails on class component with functional component error
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 11.8k
- Forks
- 7.9k
- Merge moyen
- 1 j 11 h
- PR mergées (30 j)
- 11
Description
In a class component with all class component children...
constructor(props) {
super(props);
this.myref = React.createRef();
}
render() {
return (
{React.cloneElement(this.props.children[0], {ref: myref})}
);
}
...fails with Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?
I get that React.cloneElement() is probably returning a functional wrapper that's confusing React, but given the power of this.props.children, what is the proper way to dynamically add refs? All of the actual children are class components if that matters.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Le rapport mentionne React.cloneElement(), React.createRef(), les composants de classe et les composants fonctionnels, mais aucun fichier du dépôt ni point d’entrée de test. Commencez par reproduire l’avertissement avec la structure de composants indiquée et déterminez si le comportement attendu nécessite une correction de React ou une clarification de la documentation ; c’est terminé lorsqu’un résultat convenu et reproductible ainsi qu’une résolution documentée ou testée sont obtenus.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, react
- Domaine
- frontend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100