我在WidgetForm.js(最流行的react + redux样板)中查看react-redux-universal-hot-example样本。最后有一个按钮调用handleSubmit将数据发送到服务器:
[[x] for x in myList]
我很困惑handleSubmit函数的来源。我检查了Widgets容器,在呈现WidgetForm时它没有通过它。它是由插件自动注入的吗?或者是在更高级别完成?我很反应+ redux而且我迷路了。
答案 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)...