В моем приложении мне нужно отображать всплывающие диалоговые окна. Эти диалоги должны располагаться вблизи вершины дерева DOM, чтобы обеспечить правильное позиционирование. На каждой странице может быть разный диалог.Прохождение реакции компонента вверх по дереву
У меня есть структура приложения, как этот
var Dialog = React.createClass({
render: function() {
return <div> Hello world! </div>
}
});
var Page = React.createClass({
handleClick: function() {
this.props.onDialogChange(<Dialog />)
},
render: function() {
return (
<div onClick = {this.handleClick}>
Click me!
</div>
);
}
});
var App = React.createClass({
getInitialState: function() {
return {dialog: null};
},
handleDialogChange: function(dialog) {
this.setState({dialog: dialog});
},
render: function {
return (
<div>
{this.state.dialog}
<Page onDialogChange = {this.handleDialogChange} />
</div>
);
}
});
Все работает, но у меня есть предупреждение в консоли
Warning: owner-based and parent-based contexts differ
я делаю это неправильно, и я должен реорганизовать свою структуру приложения?