React-devtools: Noms de composants manquants

Créé le 3 janv. 2014  ·  9Commentaires  ·  Source: facebook/react-devtools

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 :
image

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 de webpack ? J'ai essayé d'ajouter 'displayName' et cela n'a pas fonctionné.

Quelqu'un d'autre se heurte à ce problème?

Tous les 9 commentaires

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() .

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 :

https://github.com/facebook/react/blob/ab47e992155ec9c2455b02bf671e8dd92bd01055/vendor/fbtransform/transforms/reactDisplayName.js#L37 -L51

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?

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

CodyReichert picture CodyReichert  ·  5Commentaires

levani picture levani  ·  4Commentaires

mmahalwy picture mmahalwy  ·  3Commentaires

zhammer picture zhammer  ·  4Commentaires

prasannavl picture prasannavl  ·  3Commentaires