首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Redux Form v6.0.0外部的提交按钮

Redux Form v6.0.0外部的提交按钮
EN

Stack Overflow用户
提问于 2016-07-01 23:01:04
回答 7查看 7.5K关注 0票数 24

这个问题与Redux Form v6.0.0相关(在写这个问题的时候是v6.0.0-alpha.15)。

如何从表单组件外部获取表单验证状态(如pristinesubmittinginvalid)?

让我举个例子。这是“经典的redux-form”伪结构:

代码语言:javascript
复制
<Form(MyExampleForm)>
    <MyExampleForm>
        <input name="title" ... />
        <submit-button />

JSX中的...where <submit-button>如下所示:

<button type="submit" disabled={pristine || submitting || invalid} >Save</button>

但在我的应用程序中,我的提交按钮必须在表单之外,放置在应用程序中的不同位置(比如在应用程序标题中,在整个应用程序的顶部)。

  1. 如何从Redux-Form外部获取这些pristinesubmittinginvalid?(如果可能的话,不要进行真正令人讨厌的黑客攻击:-))
  2. 我如何提交该表单?
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2016-09-08 17:31:15

只需装饰另一个具有相同表单名称的组件,您就可以访问那里的相同状态变量。此外,您可以从父级传递onSubmit函数,并能够从您定义的任何位置提交所有字段值,因为它们都来自redux状态,而不是当前表单实例的HTML。(这是一种“老生常谈”的方式,但感觉是对的)

提交函数是从父函数定义的,而不是在状态下共享的,因此您可以对每个实例使用不同的提交函数。

代码语言:javascript
复制
class MySubmitForm extends React.Component {
    render() {
        return (
            <button
                onClick={this.props.handleSubmit}
            >
                {this.props.pristine ? 'pristine' : 'changed'}
            </button>
        )
    }
}

export default reduxForm({
    form: 'myFormName'
})(MySubmitForm);
票数 14
EN

Stack Overflow用户

发布于 2016-07-06 20:43:02

redux-form与React Redux一起工作,使React中的html表单能够使用Redux来存储其所有状态。

如果“在redux -Form之外”意味着仍然是redux应用程序,您可以尝试通过分派一些操作来在状态中存储这些属性。

在表单中:你正在检测正在发生的事情(当它无效时),在“外部”部分:你正在向组件传递一个适当的属性(带有你需要的属性),并依赖于你禁用了一个按钮。

票数 4
EN

Stack Overflow用户

发布于 2016-09-05 21:24:01

在最新的redux-form版本6.0.2中:

  1. 可以通过选择器访问表单状态pristinesubmittinginvalid可以导出redux-form操作创建器http://redux-form.com/6.0.2/docs/api/ActionCreators.md/
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38148580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档