React-devtools: コンポーネント名がありません

作成日 2014年01月03日  ·  9コメント  ·  ソース: facebook/react-devtools

コンポーネント名が常に「不明」である理由はありますか?

念のため、browserifyを使用していますが、ソースは縮小されておらず、連結されているだけです。

外観は次のとおりです。
image

最も参考になるコメント

ChromeプラグインReact Developer Toolsを使用していますが、Reactツリーを調べると、コンポーネントの実際の名前ではなく「プロキシコンポーネント」が表示されます。 webpack問題である可能性がありますか? 'displayName'を追加しようとしましたが、うまくいきませんでした。

他の誰かがこの問題に遭遇しますか?

全てのコメント9件

OK、ここにクイックアップデートがあります:コンポーネントがこのように公開されている場合、名前としてUnknownがあります:

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

ただし、これに変更すると、機能し始めます。

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

拡張機能のソースコードを確認しましたが、 tagNameとは何で、どのように設定されているのかわかりません。

JSXを使用していない場合は、クラスにdisplayName属性を追加する必要があります。

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

JSXを使用している場合、これは自動的に行われます。 残念ながら、それ以外の方法で入手する方法はありません。

はい、JSXを使用しています。 したがって、別の問題のようです。コンポーネントがexports.ComponentName = React.createClass()宣言されている場合、JSXコンパイラはdisplayName提供できません。

これはそれを担当するコードです: https

JSXは、理論的にはあなたのフォーマットもサポートできます。 ただし、ES6クラスなどに移行すると、この問題は解消されます。

tagNameは、ReactのコアのDOMコンポーネントの一部です。 displayNameはありません。

プルリクエストを送信する場合は、ここに好みの形式を追加できます。

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

理解しました、ありがとう。 手動displayNameは今のところ機能します。

ChromeプラグインReact Developer Toolsを使用していますが、Reactツリーを調べると、コンポーネントの実際の名前ではなく「プロキシコンポーネント」が表示されます。 webpack問題である可能性がありますか? 'displayName'を追加しようとしましたが、うまくいきませんでした。

他の誰かがこの問題に遭遇しますか?

このページは役に立ちましたか?
0 / 5 - 0 評価