javascript - Redux-Form handleSubmit 问题 [传递 handleSubmit() 一个 onSubmit 函数或传递 onSubmit 作为 prop]
问题描述
首先,我是 React 和 Redux 的绝对菜鸟。我正在使用 ' easydev ' 的管理模板,有时我觉得它很混乱。所以这是我的代码:
索引.jsx
import React from 'react';
import { connect } from 'react-redux';
import { compose } from 'redux';
import ActivityChart from './components/ActivityChart';
import MapFilter from './components/MapControl';
import MapLine from './components/MapLineDraft';
const CustomDashboard = ({ rtl }) => {
const { t } = useTranslation('common');
const submitFormData = (values) => {
console.log(values);
};
return (
<Container className="dashboard">
<Row>
<Col md={12}>
<h3 className="page-title">{t('custom.page_title')}</h3>
</Col>
</Row>
<Row>
<ActivityChart dir={rtl.direction} />
<MapLine />
<MapFilter handleSubmit={submitFormData()} />
</Row>
</Container>
);
};
CustomDashboard.propTypes = {
rtl: RTLProps.isRequired,
};
export default compose(connect(state => ({
rtl: state.rtl,
})))(CustomDashboard);
地图过滤器.jsx
import React from 'react';
import PropTypes from 'prop-types';
import {
Button, ButtonToolbar,
} from 'reactstrap';
import { Field, reduxForm } from 'redux-form';
import axios from 'axios';
import renderSelectField from '@/shared/components/form/Select';
import DatePickers from './DatePickers';
function MapFilter({ handleSubmit, reset }) {
return (
<form className="" onSubmit={handleSubmit}>
<div className="">
<Field
placeholder="Select Car"
name="select"
component={renderSelectField}
options={[
{ value: '1', label: 'Car-01' },
{ value: '2', label: 'Car-02' },
{ value: '3', label: 'Car-03' },
]}
/>
</div>
<div className="date_picker_row">
<DatePickers />
</div>
<ButtonToolbar className="form__button-toolbar">
<Button color="primary" type="submit">Submit</Button>
<Button type="button" onClick={reset}>
Cancel
</Button>
</ButtonToolbar>
</form>
);
}
MapFilter.propTypes = {
handleSubmit: PropTypes.func.isRequired,
reset: PropTypes.func.isRequired,
};
export default reduxForm({
form: 'vehicle_tracking_form', // a unique identifier for this form
})(MapFilter);
因此,每当我运行此代码时,都会遇到以下错误:“您必须将 handleSubmit() 传递给 onSubmit 函数或将 onSubmit 作为道具传递”。
我已经尝试了 stackoverflow 的几种解决方案,但仍然没有掌握它。请你把它告诉我我做错了什么?
解决方案
推荐阅读
- reactjs - webpack 开发服务器每 30 天更换一次 server.pem?如何让它选择我自己的证书而忽略重新生成的证书
- python - 如何在 Altair 中水平排列两个多面并排图表?
- python - 如何使用python循环为数字生成标题序列
- angular - Angular 8:如何在列的表头中显示多个数据并可以在单击特定标题属性时对数据进行排序?
- android - .gitignore 不适用于 .cxx 文件夹
- flutter - 某些 iOS 设备中的额外填充
- c# - 类库事件聚合器而不是日志记录
- angular - Angular:如何使用指令在文本框中只允许整数
- c# - 升级到 3.0 后身份上的 LINQ 不起作用?
- c++-cli - 将变量从 .h 传递到 .cpp