谁应该通过'handleSubmit'

时间:2016-12-24 16:50:50

标签: reactjs redux

我在WidgetForm.js(最流行的react + redux样板)中查看react-redux-universal-hot-example样本。最后有一个按钮调用handleSubmit将数据发送到服务器:

[[x] for x in myList]

我很困惑handleSubmit函数的来源。我检查了Widgets容器,在呈现WidgetForm时它没有通过它。它是由插件自动注入的吗?或者是在更高级别完成?我很反应+ redux而且我迷路了。

2 个答案:

答案 0 :(得分:2)

handleSubmit prop是从redux form通过装饰器传递的提交处理程序:

@reduxForm({
  form: 'widget',
  fields: ['id', 'color', 'sprocketCount', 'owner'],
  validate: widgetValidation
})
export default class WidgetForm extends Component {

在上下文中,您传递此组件onSubmit函数,该函数稍后由handleSubmit回调调用。这允许redux表单在通过任何操作提交表单时执行验证,收集表单值,返回错误等。

答案 1 :(得分:0)

令人困惑,但如果你看第34行,你会看到

const { editStop, fields: {id, color, sprocketCount, owner}, formKey, handleSubmit, invalid,
  pristine, save, submitting, saveError: { [formKey]: saveError }, values } = this.props;

如果要从此别名中删除此handleSubmit,则按钮将显示为

<button className="btn btn-success"
              onClick={this.props.handleSubmit(() => save(values)...