J'ai ceci:
const ProjectsSummaryLayout = ({projects}) => {
return (
<div className="projects-summary col-md-10">
<h3>Projects</h3>
<ul>
{ projects.map(p => <li key={p.id}>{p.contract.client}</li>) }
</ul>
</div>
)
}
const ProjectsSummary = connect(
state => ({projects: state.projects})
)(ProjectsSummaryLayout)
et je reçois:
Avertissement: Les références de fonction ne peuvent pas être attribuées aux composants de fonction sans état (voir la référence "wrappedInstance" dans ProjectsSummaryLayout créée par Connect (ProjectsSummaryLayout)). Les tentatives d'accès à cette référence échoueront.
Qu'est-ce qu'il essaie de me dire? Est-ce que je fais réellement quelque chose de mal?
Je vois la discussion à ce sujet ici mais malheureusement, je ne comprends tout simplement pas la conclusion.
Dans React, refs
ne peut pas être attaché à un composant sans état .
Réagissez Redux 3 attache un ref
au composant que vous lui donnez indépendamment de de savoir si c'est apatride. L’avertissement que vous voyez provient de React car en interne, React Redux 3 attache un ref
au composant sans état que vous avez fourni (ProjectsSummaryLayout
).
Vous ne faites rien de mal et selon ce commentaire de GitHub , vous pouvez ignorer l'avertissement en toute sécurité.
Dans React Redux 4 , aucun ref
n'est attaché au composant encapsulé par défaut, ce qui signifie si vous effectuez une mise à niveau vers React Redux 4, l'avertissement devrait disparaître.
React a 2 styles de composants couramment utilisés.
Ainsi, lorsque je me servais de Functional, je rencontrais cette erreur.
Extrait de code correspondant au composant fonctionnel
Mais dès que je l'ai changé en composant de classe, cela a fonctionné.
Extrait de code correspondant au composant de classe.
Essayez de changer le composant fonctionnel en composant de classe. J'espère que cela résoudra votre problème.