Вот почему я считаю, что при работе со сложными библиотеками, такими как reduxForm
, важно установить базовый вариант и заставить его работать.Я имею в виду, что сначала мне нужно реализовать простую форму, убедиться, что она работает до того, как написать тонну кода, который вы написали, чтобы потом выяснить, что что-то не работает должным образом.
Например, я бы начал сэто:
class FeedCommentsInput extends Component {
render() {
return (
<div>
<form onSubmit={this.props.handleSubmit(values => console.log(values))}>
<Field type=“text” name=“feedTitle” component=“input” />
<button type=“submit”>Submit</button>
</form>
</div>
);
}
}
export default reduxForm({ form: 'FeedCommentsInput' })(FeedCommentsInput);
Никаких проверок, ничего больше, только эти простые инструкции установки, импорта и экспорта включены, конечно.Теперь с этой настройкой, когда пользователь отправляет форму, будет вызвана функция, переданная нам с помощью формы избыточного числа, и она будет внутренне вызывать функцию, которую я передала внутри onSubmit
.
Затем я перейду в браузер ипротестируйте его, добавив текст и нажав «Отправить», и когда я это сделаю, я должен увидеть консольный журнал с ключом feedTitle
и значением набранного текста.
Это почти весь потоко reduxForm
в двух словах, и это то, что я бы сначала установил, чтобы убедиться, что все работает.
Когда я добавляю обработчик onSubmit
к форме, а затем вызываю handleSubmit()
внутри и выдаюмоя функция стрелка.Функция стрелки будет вызываться автоматически всякий раз, когда пользователь отправляет форму.
Объект значений в журнале консоли - это текст, который был введен во ввод, а ключ объекта - name
, добавленный кПолевой компонент.Вот почему свойство name
, требуемое компонентом Field
, также может быть использовано, чтобы помочь вам.Если вы не видели feedTitle
, вы бы знали, что что-то не работает должным образом, прежде чем писать код для проверок и т. Д.