У меня есть компонент <Button />
, который я создал в React, который абстрагирует некоторые стили в моем приложении. Я использую его в двух разных контекстах: один для отправки формы для входа, а другой для перехода на страницу регистрации (и, возможно, в других контекстах в будущем).Как передать обработчик события дочернему компоненту в React
Я пытаюсь выяснить, как передать обработчики событий из родительского компонента в <Button />
. Я хочу вызвать обработчик onSubmit
для формы входа, но обработчик onClick
для кнопки навигации. Это возможно?
Я попытался назвать компонент, как это:
<Button text={callToAction} style={styles.callToActionButton} onClick={() => FlowRouter.go("Auth")}/>
<Button text="Go!" style={styles.registerButton} onSubmit={() => this.register(this.state.user, this.state.password)}/>
Я также попытался удалить функцию стрелки, которая просто вызывает функции для выполнения, когда компонент загружен:
// executes event handlers on page load
<Button text={callToAction} style={styles.callToActionButton} onClick={FlowRouter.go("Auth")}/>
<Button text="Go!" style={styles.registerButton} onSubmit={this.register(this.state.user, this.state.password)}/>
просто '{this.register}' ' должен сделать, просто получить состояние вашего пользователя в этом методе реестра (не нужно передавать как параметры) – Icepickle
Можете ли вы расширить это? Мне не повезло, что обработчик события onClick работает с другим компонентом. – bgmaster
хорошо finalfreq дал уже хороший пример. Чтобы дать более подробную информацию, было бы полезно увидеть, как реализуется родительский компонент. В его случае вы передаете свой обработчик событий в качестве опоры для дочернего компонента, а дочерний компонент затем вызывает функцию в родительском элементе управления. – Icepickle