Как преобразовать этот дополнение к функциям в компонент класса :
const SyncValidationForm = (props) => {
const { handleSubmit, pristine, reset, submitting } = props
return (
<form className = "formmailforbook" onSubmit = {handleSubmit(submit)}>
<Field name = "email" type = "email" component = {renderField} label = "Email"/>
<div>
<button className = "hero_button margin_left" type = "submit" disabled = {submitting}>Submit</button>
</div>
</form>
)
}





Довольно простой перевод, вы можете выполнить ту же деструктуризацию пропа в методе render. Единственное небольшое изменение в том, что теперь он извлекается из this.props:
import React, { Component } from 'react';
export default class SyncValidationForm extends Component {
render () {
const { handleSubmit, pristine, reset, submitting } = this.props;
return (
<form className = "formmailforbook" onSubmit = {handleSubmit(submit)}>
<Field name = "email" type = "email" component = {renderField} label = "Email"/>
<div>
<button className = "hero_button margin_left" type = "submit" disabled = {submitting}>Submit</button>
</div>
</form>
)
}
}
Это довольно просто ... скопируйте код в новый файл и добавьте export default перед const примерно так.
export default const SyncValidationForm
Импортируйте файл по мере того, как вы импортируете другие компоненты, где бы вы ни хотели компонент, и используйте импортированное имя как имя jsx как usal и предоставьте реквизиты.
Когда я использую это решение, рендеринг приложения, но появляются ошибки: invariant.js: 42 Uncaught Error: addComponentAsRefTo (...): только ReactOwner может иметь ссылки. Возможно, вы добавляете ссылку на компонент, который не был создан внутри метода
renderкомпонента, или у вас загружено несколько копий React.