Вы должны преобразовать это в класс.Что-то вроде этого должно работать
class SurveyFormReview extends React.Component {
state = { file: null };
onFileChange = event => {
this.setState({ file: event.target.files });
};
render() {
const { onCancel, formValues, submitSurvey, history } = this.props
const reviewFields = _.map(formFields, ({ name, label }) => {
return (
<div key={name}>
<label>{label}</label>
<label>{formValues[name]}</label>
</div>
);
});
return (
<div>
<h5>Please confirm your entries</h5>
{reviewFields}
<h5>Add an Image</h5>
<input
onChange={this.onFileChange}
type="file"
accept="image/*"
/>
</div>
)
}
}
, просто как заметка об оптимизации и прочем.
Поскольку это форма, я рекомендую вам использовать лучшие элементы HTML.
const reviewFields = _.map(formFields, ({ name, label }) => {
return (
<fieldset key={name}>
<span>{label}</span>
<span>{formValues[name]}</span>
</fieldset>
);
});
label
элементы обычно используются с input
элементами.fieldset
элементы обычно для групп форм данныхВы можете использовать элемент legend
для заголовка вашего набора полей, если хотите:)