У меня есть два файла JS, включенных в страницу в utility.js и utility1.js
Код для utility.jsfindDOMNode монтируемого компонента в ReactJS
var HelloWorld = React.createClass({
render: function() {
return (
<p>
Hello, <input type="text" ref="mytestinput" placeholder="Your name here" />!<br />
It is {this.props.date.toTimeString()}
</p>
);
}
});
setInterval(function() {
React.render(
<HelloWorld date={new Date()} />,
document.getElementById('container')
);
}, 1000);
Код для utility1.js
var MyComponent = React.createClass({
handleClick: function() {
// Explicitly focus the text input using the raw DOM API.
React.findDOMNode(HelloWorld.refs.mytestinput).focus();
},
render: function() {
// The ref attribute adds a reference to the component to
// this.refs when the component is mounted.
return (
<div>
<input type="text" ref="myTextInput" />
<input
type="button"
value="Focus the text input"
onClick={this.handleClick}
/>
</div>
);
}
});
React.render(
<MyComponent />,
document.getElementById('container1')
);
Проблема здесь в том, что я хочу сосредоточиться на вводе HelloWorld Component из утилиты.js из утилиты utility.js. Я видел их как один метод findDOMNode для смонтированных компонентов. Но этот код не работает для меня. Может кто-нибудь попробовать этот JS Fiddle here и сообщить мне о возможном решении.
Можете ли вы объяснить, как это подписаться и уведомить об этом. что такое cb (data) в методе уведомления. –
Это всего лишь базовый пример. Вы должны разработать собственную систему событий. –
Подписка (имя, cb) регистрирует события (имя) и обработчики событий (cb). И уведомление используется для выполнения этих событий, а также для передачи данных из одного компонента в другой компонент. В этом случае вы используете подписку для создания прослушивателя событий (foo) в компоненте HelloWorld. Всякий раз, когда вы вызываете уведомление (foo, «focus»), он выполняет функцию foo. cb (data) здесь используется для передачи данных из удаленного компонента в обработчики событий другого компонента. Честно говоря, мой пример не очень хорош, но я надеюсь, что это поможет вам понять идею глобальной системы событий. –