@KFan
Веб-программист

Получить ссылку на компонент внутри jsx?

Есть такой код:

var App = React.createClass({
	render: function () {
		return (
			<div>
				<Menu />
				<div className="main-wrapper">
					<WorkArea />
				</div>
			</div>
		);
	}
});

var WorkArea = React.createClass({
	render: function () {
		return (
			<div className="row">
				<div className="col-md-3 left-column"><TreeView path="/" startload={true} parent={false} level={1}/></div>
				<div className="col-md-9 right-column"><Tabs /></div>
			</div>
		);
	}
});

ReactDOM.render(
	<App />,
	document.getElementById('root')
);


приводить коды всех компонентов которые используются тут, не буду, и те которые юзаются еще глубже тоже, в этом нет смысла..

Вопрос вот в чем, после того как я сгенерировал Tabs, как мне внутри WorkArea, получить ссылку на него чтобы производить дальнейшие модификации? То есть костыль которым это можно сделать придумывается сразу, но хочется нормально решение.

В случае с TreeView к примеру (так как он многоуровненый), я передаю parent когда он есть, и внутри произвожу нужные операции, к примеру когда внутри открывается компонент TreeViewItem, я передаю туда parent параметр и оперирую с ним так, как мне нужно. Но в случае с Tabs нужна обратная ситуация, нужно получить ссылку на компонент который был создан, и не из которого он был создан.

Вообщем-то в результате я хочу сделать что то такое из любой точки приложения:
window.WorkAreaTabs.AddTab({
	title: this.props.item.name,
	content: "test"
});
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
@davidnum95
После разъяснений в коментах, определились с тем что нужно. Через refs можно получить ссылку на компонент
<Tabs ref={(ref) => this.tabs = ref} />
Доступ к компоненту через this.tabs
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы