Y a-t-il une raison pour laquelle les noms de composants sont toujours « inconnus » ?
Juste au cas où j'utilise browserify et les sources ne sont pas minifiées, seulement concaténées.
Voici à quoi cela ressemble :
OK, voici une mise à jour rapide : si le composant est exposé comme ceci, il aura Unknown
comme nom :
exports.MyComponent = React.createClass({...});
Cependant, lorsque je le change en ceci, cela commence à fonctionner:
var MyComponent = React.createClass({...});
exports.MyComponent = MyComponent;
J'ai vérifié le code source de l'extension, mais je n'arrive pas à comprendre ce qu'est tagName
et comment il est défini.
Si vous n'utilisez pas JSX, vous devez ajouter un attribut displayName
à votre classe.
var MyComponent = React.createClass({
displayName: 'MyComponent',
...
});
Si vous utilisez JSX, cela se fait automatiquement. Malheureusement, il n'y a pas moyen de l'obtenir autrement.
Oui, j'utilise JSX. Il semble donc que le problème soit différent - le compilateur JSX ne peut pas contribuer à displayName
si le composant est déclaré avec exports.ComponentName = React.createClass()
.
Voici le code qui en est responsable : https://github.com/facebook/react/blob/master/vendor/fbtransform/transforms/reactDisplayName.js#L37
JSX pourrait également en théorie prendre en charge votre format. Ce problème disparaît lorsque nous passons aux classes ES6 ou à quelque chose de similaire.
Le tagName fait partie des composants DOM du noyau de React. Il n'a pas de displayName.
Si vous souhaitez envoyer une pull request, vous pouvez ajouter vos formats préférés ici :
Compris, merci. Le manuel displayName
fonctionnera pour le moment.
Je viens de créer https://github.com/facebook/react/pull/799 qui devrait résoudre ce problème pour tous les cas auxquels je peux penser.
J'utilise le plugin chrome React Developer Tools
et lorsque j'inspecte l'arborescence React, je vois 'Proxy Component' au lieu du nom réel des composants. Peut-être un problème de webpack
? J'ai essayé d'ajouter 'displayName' et cela n'a pas fonctionné.
Quelqu'un d'autre se heurte à ce problème?
Commentaire le plus utile
J'utilise le plugin chrome
React Developer Tools
et lorsque j'inspecte l'arborescence React, je vois 'Proxy Component' au lieu du nom réel des composants. Peut-être un problème dewebpack
? J'ai essayé d'ajouter 'displayName' et cela n'a pas fonctionné.Quelqu'un d'autre se heurte à ce problème?