React-devtools: Nomes de componentes ausentes

Criado em 3 jan. 2014  ·  9Comentários  ·  Fonte: facebook/react-devtools

Existe algum motivo pelo qual os nomes dos componentes são sempre "Desconhecidos"?

Por precaução, estou usando o browserify e as fontes não estão reduzidas, apenas concatenadas.

É assim que parece:
image

Comentários muito úteis

Estou usando o plugin do Chrome React Developer Tools e quando inspeciono a árvore React, vejo 'Componente proxy' em vez do nome real do componente. Pode ser um problema de webpack ? Tentei adicionar 'displayName' e não funcionou.

Alguém mais teve esse problema?

Todos 9 comentários

OK, aqui está uma atualização rápida: se o componente for exposto assim, ele terá Unknown como nome:

exports.MyComponent = React.createClass({...});

No entanto, quando eu mudo para isso, ele começa a funcionar:

var MyComponent = React.createClass({...});
exports.MyComponent = MyComponent;

Eu verifiquei o código-fonte da extensão, mas não consigo descobrir o que é tagName e como está definido.

Se você não estiver usando JSX, precisará adicionar um atributo displayName à sua classe.

var MyComponent = React.createClass({
  displayName: 'MyComponent',
  ...
});

Se você estiver usando JSX, isso é feito automaticamente. Infelizmente, não há como fazer de outra forma.

Sim, estou usando JSX. Portanto, parece que é um problema diferente - o compilador JSX não pode contribuir com displayName se o componente for declarado com exports.ComponentName = React.createClass() .

O JSX poderia, em teoria, suportar o seu formato também. Este problema vai embora quando mudamos para as classes ES6 ou algo semelhante.

O tagName é algo que faz parte dos componentes DOM no núcleo do React. Não tem um displayName.

Se quiser enviar uma solicitação pull, você pode adicionar seus formatos preferidos aqui:

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

Compreendido, obrigado. O manual displayName funcionará por enquanto.

Acabei de fazer https://github.com/facebook/react/pull/799 que deve corrigir isso para todos os casos que eu consigo pensar.

Estou usando o plugin do Chrome React Developer Tools e quando inspeciono a árvore React, vejo 'Componente proxy' em vez do nome real do componente. Pode ser um problema de webpack ? Tentei adicionar 'displayName' e não funcionou.

Alguém mais teve esse problema?

Esta página foi útil?
0 / 5 - 0 avaliações