首页 > 解决方案 > Redux-Form 多于一个 Field 不会提交

问题描述

当我有多个字段时,为什么我的 redux-form 不提交?

如果我有多个字段,则表单上的 onSubmit 不会运行。

以下代码不会显示警报:

//@flow
import * as React from 'react';
import {Field, reduxForm, Form} from 'redux-form';


class CustomerPage2 extends React.Component {

    constructor(props) {
        super(props);
    }

    render() {

        let submit = () => alert("show me the money")

        return (
                <Form id="myform" onSubmit={submit} >
                        <Field
                            label={'asdf'}
                            className={'input'}
                            id='1'
                            name={'salutation'}
                            mandatory={true}
                            component='input'
                        />
                        <Field
                            label={'asdf2'}
                            className={'input'}
                            id='2'
                            name={'first_name'}
                            mandatory={true}
                            component='input'
                        />
                </Form>
        );
    }
}

export default reduxForm({
    form: 'customerRegistration',
})(CustomerPage2)

但是,如果我删除其中一个字段,则会弹出警报:

使成为() {

let submit = () => alert("show me the money")

return (
        <Form id="myform" onSubmit={submit} >
                <Field
                    label={'asdf'}
                    className={'input'}
                    id='1'
                    name={'salutation'}
                    mandatory={true}
                    component='input'
                />
        </Form>
);

}

我还创建了一个小提琴,您可以亲眼看到它:

https://jsfiddle.net/036ur33k/150/

只需删除其中一个字段,您就会明白我的意思。

标签: redux-form

解决方案


我认为您忘记handleSubmit在 onSubmit 事件中使用该功能(redux-form 将其添加到组件道具上)。

我修改了你的小提琴,检查它是否是你需要的。

https://jsfiddle.net/036ur33k/173/


推荐阅读