Допустим, у меня есть карта, которая содержит регистрационную формуРеагировать доступа Dom Узлов из this.props.children
<Card>
<LoginForm/>
</Card>
Как получить доступ к узлам из формы в карты функции визуализации?
<Form >
<input type="text" name="email"/>
<input type="password" name="password"/>
<input type="submit"/>
</Form>
Потому, что я бы хотел сделать, это оказать submitbutton не в props.children контекста, но делают это завернутым за пределами данного ребенка!
render() {
return (
<div className="card">
<div className="inner">
{/* render Children */}
{this.props.children != undefined ?
<div className="childrenWrapper">
{this.props.children}
</div>
: ""
}
</div>
{/* render submit from login form here, not above */
</div>)
Есть некоторые компоненты, которые на самом деле делать то, что я хочу. Например, компонент Tabs от react-toolbox. Они каким-то образом удается вынести то, что внутри вкладки (детей) где-то еще
Просто, например
<Tabs index={this.state.inverseIndex} onChange={this.handleInverseTabChange} inverse>
<Tab label='First'><small>First Content</small></Tab>
<Tab label='Second'><small>Second Content</small></Tab>
<Tab label='Third'><small>Third Content</small></Tab>
<Tab label='Disabled' disabled><small>Disabled Content</small></Tab>
</Tabs>
что приведет к следующему HTML
Как вы можете видеть детей на вкладке где отображается в их собственном разделе Я не хочу ничего менять в форме для решения этой проблемы, я хотел бы передать форму на Карту и позволить Карте решить, как Форма будет отображаться в функции рендеринга карты.
Поскольку я пытаюсь реализовать Карту дизайна материалов Google component и просто использую его в качестве шаблона, появляется больше элементов, которые нужно разделить и разместить в тех позициях, которые я хочу, чтобы они были. Дело в том, что я могу разместить соответствующий HTML-код вокруг Формы, чтобы получить его как карту, которую я хочу, но тогда мне вообще не нужен компонент.
Как насчет того, чтобы установить переменную с помощью flatButton, а затем передать ее в качестве реквизита для компонента карты? Ах, я забыл: для доступа к flatButton, я думаю, вы могли бы использовать ref prop. – dschu
@dschu, который работает, но дело в том, что сама плоская кнопка находится внутри формы, а затем будет отображаться в детской части, а также – TeaTime
Да, вы правы. Вам нужно было бы передать другую опору компоненту LoginForm, чтобы сообщить компоненту не отображать кнопку. В этом случае вам следует рассмотреть возможность реструктуризации ваших компонентов. – dschu