Я ищу подходящий шаблон / способ разработки этого с помощью React, но пока не нашел ничего подходящего / элегантного.
Я в основном хочу написать движок форм.Для каждого ввода в форме мне нужны некоторые общие поведения.
Я прочитал в документации React, что наследование не является правильным способом;Хороший способ - разработать общий компонент и специализировать его по составу.
В моем верхнем компоненте я хочу написать что-то вроде:
<Form>
<TextInput .../>
<TextInput .../>
<EmailInput .../>
</Form>
Каждый тип ввода должен в основном всегда делать одно и то же: пример: проверять это значение на соответствие его валидаторам и т. Д.
Итак, я разработал общий компонент FormInput
, который содержит все эти стандартные поведения.Когда я пишу свой компонент TextInput
, он выглядит следующим образом:
export default class TextInput extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<FormInput>
<input name={this.props.name}
type='text'
onChange={this.onChange}
onBlur={this.dirty}
value={this.state.value}
/>
</FormInput>
);
}
}
Теперь проблема в том, что this.onChange
или this.dirty
- это стандартные поведения, расположенные в компоненте FormInput
,очевидно, я не могу получить к ним прямой доступ ...
Как правильно подключить включенный контент к его компоненту контейнера?
РЕДАКТИРОВАТЬ
Просто чтобы прояснить и подвести итог цели, я в основном хочу сделать общий компонент и включенный контент / шаблон.Проблема заключается в том, что мне нужно привязать конкретный шаблон DOM (который находится в конкретном компоненте) к универсальным обработчикам (которые находятся в универсальном компоненте).
Спасибо заранее!