Я использую response.js в качестве библиотеки шаблонов в приложении node.js. Я использую синтаксис jsx для своих реагирующих компонентов. У меня есть маршрут, похожий на /entity, который отображает файл entity.jsx (это представление). У меня есть следующий код в файле entity.jsx. Я пытаюсь вызвать onclickhandler в своем коде и его не работает. Я не показываю его явно с помощью React.render, но компонент отображается в браузере, когда я нажимаю localhost: /entities, но обработчик onclick не запускается.
var MyComponent = React.createClass({
alertMessage: function() {
alert(this.props.name);
},
render: function () {
return (
<div onClick={this.alertMessage}>
Hello {this.props.name}
</div>
);
}
});
Примеры, которые я видел в Интернете, отображают jsx-скрипт, встроенный внутри html и компонент, отображаемый внутри тега html div, но я пытаюсь использовать response.js в приложении node.js. Я не хочу отображать его внутри тега html, но компонент должен отображать на основе URL-адреса и должен быть динамическим
У меня есть следующий фрагмент кода в моем файле index.js в моем приложении-узле. Я ударил объекты "сущности" через файл index.js, который отображает объекты представления.
app.get('/entities', function(req, res) {
res.render('entities', {
title: 'Entities - Turkey Disclosure',
name: 'Entities',
selection: 'header-entities'
});
});
Если вы правильно React.renderToString()
вы используете React.renderToString()
для рендеринга в приложении узла. React не вставляет onClick
и другие операторы событий непосредственно в разметку. Если вы хотите сохранить эти события, вы должны называть React.render()
на узле, который уже имеет разметку, предоставленную сервером. React сохранит его и только присоединяет обработчики событий, позволяя вам иметь очень эффективный опыт первой загрузки.
Там хорошая статья, объясняющая разницу между тремя методами рендеринга в React.