Gibt es einen Grund, warum Komponentennamen immer "Unbekannt" sind?
Nur für den Fall, dass ich browserify verwende und die Quellen nicht minimiert, sondern nur verkettet werden.
So sieht es aus:
OK, hier ist ein kurzes Update: Wenn die Komponente so verfügbar gemacht wird, hat sie Unknown
als Namen:
exports.MyComponent = React.createClass({...});
Wenn ich es jedoch so ändere, beginnt es zu funktionieren:
var MyComponent = React.createClass({...});
exports.MyComponent = MyComponent;
Ich habe den Quellcode der Erweiterung überprüft, kann aber nicht herausfinden, was tagName
und wie es eingestellt ist.
Wenn Sie JSX nicht verwenden, müssen Sie Ihrer Klasse ein displayName
Attribut hinzufügen.
var MyComponent = React.createClass({
displayName: 'MyComponent',
...
});
Wenn Sie JSX verwenden, geschieht dies automatisch. Leider gibt es keine Möglichkeit, es anders zu bekommen.
Ja, ich verwende JSX. Es scheint also ein anderes Problem zu sein - der JSX-Compiler kann displayName
nicht beitragen, wenn die Komponente mit exports.ComponentName = React.createClass()
deklariert wird.
Dies ist der dafür verantwortliche Code: https://github.com/facebook/react/blob/master/vendor/fbtransform/transforms/reactDisplayName.js#L37
JSX könnte theoretisch auch Ihr Format unterstützen. Dieses Problem verschwindet jedoch, wenn wir zu ES6-Klassen oder ähnlichem wechseln.
Der tagName ist ein Teil der DOM-Komponenten im Kern von React. Es hat kein displayName.
Wenn Sie einen Pull-Request senden möchten, können Sie hier Ihre bevorzugten Formate hinzufügen:
Verstanden, danke. Manuell displayName
wird vorerst funktionieren.
Habe gerade https://github.com/facebook/react/pull/799 erstellt, was dies für alle Fälle beheben sollte, die mir einfallen.
Ich verwende das Chrome-Plugin React Developer Tools
und wenn ich den React-Baum inspiziere, sehe ich "Proxy-Komponente" anstelle des tatsächlichen Namens der Komponente. Könnte ein webpack
Problem sein? Ich habe versucht, 'displayName' hinzuzufügen, aber das hat nicht funktioniert.
Hat noch jemand dieses Problem?
Hilfreichster Kommentar
Ich verwende das Chrome-Plugin
React Developer Tools
und wenn ich den React-Baum inspiziere, sehe ich "Proxy-Komponente" anstelle des tatsächlichen Namens der Komponente. Könnte einwebpack
Problem sein? Ich habe versucht, 'displayName' hinzuzufügen, aber das hat nicht funktioniert.Hat noch jemand dieses Problem?