React - Redux-Form 远程提交

React - Redux-Form Remote Submit

我正在尝试使用 redux-forms 远程提交表单。我的问题是,如何从组件外部的函数执行 redux 操作。等价于说:

this.props.action(params);

我的代码如下:

async function submit(values) {
    return (
        //Equivalent of => this.props.addOne(values.name)
        await actions.addOne(values.name, 60)
    )
}

const renderTextField = ({ input, label, meta: { touched, error } }) =>
<TextField 
    autoFocus
    margin="dense"
    fullWidth
    type="text"
    label={label}
    {...input}
/>

class LibrarySubsectionForm extends React.Component {
render() {
    const { handleSubmit } = this.props;

    return (
        <form onSubmit={handleSubmit}>
            <Field
                component={renderTextField}
                name="name" 
                label="Subsection Name"
            />
        </form>
    )
}
}

export default compose(
connect(null, actions),
reduxForm({ form: 'AddSubsection', onSubmit: submit })
)(LibrarySubsectionForm);

Redux-form 将装饰组件的 dispatch 函数和 props 作为 onSubmit 处理程序的第二个和第三个参数传递。所以基本上你可以在你的 submit 函数中访问它们。如果您将 actions 作为道具传递给 LibrarySubsectionForm 那么您可以在 submit 函数中访问它们:

async function submit(values, dispatch, props) {
    return await props.actions.addOne(values.name, 60);
}