Вам не нужно, чтобы установить displayName
свойство к компонентам на самом деле. Он автоматически устанавливается.
Но есть определенные случаи, которые вам нужно учитывать.
.Вы положить компонент в отдельном файле и содержимое этого файла -
export default React.createClass({
render: function() {
return <h1>Hello, {this.props.name}</h1>;
}
});
В этом случае displayName
будет undefined
.
. Вы назначили компонент в переменной.
var TestComponent = React.createClass({
render: function() {
return <h1>Hello, {this.props.name}</h1>;
}
});
Теперь displayName
установлен в TestComponent
.
См. Соответствующий jsx
конверсия для уточнения.
var TestComponent = React.createClass({
displayName: "TestComponent",
render: function render() {
return React.createElement(
"h1",
null,
"Hello, ",
this.props.name
);
}
});
Если вы используете ES6 например
class HelloMessage extends React.Component {
render() {
return <div > Hello component {
} < /div>;
}
}
В этом случае displayName
будет имя класса, который вы дали HelloMessage
то есть.
Это не совсем верно для вашего второго случая. Какой именно вариант мы используем. displayName будет «Constructor» в нашем случае. Это может быть из-за Reactjs.NET. – Perfection
Добавлена соответствующая трансформация jsx для получения дополнительных пояснений. – WitVault
@ Перфекция Я не знаю, как она трансформируется в Reactjs.NET, и вы можете быть правы, что там может быть что-то другое. – WitVault