问题标签 [redux-form]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在 Redux-Form 上,我可以在验证之后但在提交之前处理值吗?
我正在使用Redux-Form,我有以下场景:
数字和日期时间是特殊的,因为在您填写完字段(例如 )之前它们可能是无效12/08/
的。此外,您可能有多个字符串表示相同的值(例如2.5000
和2.5
)。
出于这个原因,我决定在表单和应用程序状态中将所有字段都保留为字符串。
问题是我需要在验证后处理字段的值,以便发送到服务器的 JSON 实际上具有数字和日期时间,而不仅仅是字符串。
这是理想的解决方案吗?如果是这样,我该怎么做?
reactjs - 将规范化器与 ReduxForm 一起使用会导致表单总是很脏
我正在使用规范器将来自 rest api 的ISO 8601 日期/时间值(例如)转换为简单的日期( 例如)。我的规范化器看起来像这样:2016-05-24T20:38:34+00:00
2016-05-24
我还使用规范化器进行货币转换(例如,确保它只是数字等)。
我面临的问题是这导致表单总是很脏。换句话说,一旦加载初始状态(通过initialValues
in mapStateToProps
)this.props.dirty
总是返回 true。即使调度 areset
也不会导致dirty=false
.
有没有办法克服这个问题?我遇到的问题是我希望能够向用户显示他们即将放弃更改的警告,而不必onChange
为每个输入字段实现我自己的覆盖,现在他们总是被警告放弃的变化。
reactjs - 使用带有语义 UI 的 Redux 表单
我试图弄清楚我应该将我的扩展运算符放在我的语义 UI 表单中的哪个位置。
{...gender}
目前你可以看到我在div
with 类中有我的扩展运算符 , menu
。当我从下拉框中选择时,它会记录undefined
。
有人有想法吗?
reactjs - 将 Redux 表单与 React 路由器一起使用
我一直在旋转我的轮子一段时间,试图找出做这一切的最佳方法。这是我的情况:
我混合使用 React Router 和 Redux Form 来创建登录/创建帐户页面。
当您加载主页时,它会显示创建帐户的字段
我使用 React Form 来验证字段,一旦一切正常,我就会这样做
从而将它们推送到向导的下一页和最后一页。在这第二页中,我有一个禁用的输入,我想用他们在之前的表单中给我的名字填充它。我怎么才能让用户提交的名字出现在第二页?
React Form 谈到了使用装饰器:
http://redux-form.com/5.2.4/#/api/get-values?_k=eo04uv
https://github.com/erikras/redux-form/issues/260#issuecomment-155852315
我将环境设置为能够使用装饰器,但是当我尝试在上面几行代码中实现相同的代码时,出现错误消息:
Warning.js:45Warning: 失败的 propType:提供给fields
的类型无效的 prop ,需要一个数组。检查.warning @warning.js:45 getValues.js:59的渲染方法object
ReduxForm(Signup)
Connect(ReduxForm(Signup))
和
未捕获的 TypeError:fields.reduce 不是函数
我的第一页,截屏的来源,看起来非常类似于WizardFormFirstPage.js ( http://redux-form.com/5.2.4/#/examples/wizard?_k=y8mg56 )。WizardFormSecondPage 如何在禁用的输入中显示来自 WizardFormFirstPage 的数据?
我知道这很多,非常感谢任何帮助!此外,任何关于以另一种方式执行此操作的反馈都会很棒,或者对我目前的方法表示赞许。
reactjs - 如何在页面上多次嵌入相同的 redux-form?
我在尝试在一页上嵌入多个表单时遇到问题。我注意到configForm
执行一次,即使页面上有多个表单,这就是为什么我不能动态生成不同的表单名称。
如何添加表单以使它们彼此独立?
redux-form - Redux Form:如何为嵌套属性添加对象
我想要以下模型:
我希望表单的用户能够做出以下状态(它们都有自己的含义):
默认情况下,redux-form 会{}
从模式中删除空对象:
https ://github.com/erikras/redux-form/issues/1047#issuecomment-221925136
因此,鉴于这种行为,状态 1 和状态 2 是相同的,也许状态 3 也是相同的。
我试图Field
为 prop2 添加一个,但这没有用。我希望FieldObject
类似于FieldArray
withadd
和delete
属性。
为嵌套属性自动创建父级是 redux-form 的一个很酷的特性,但对于上面的用例,它不匹配......
reactjs - 根据字段值动态更改 redux-form
我有一个由三个字段组成的表单。如果字段#1 的值等于true
,则必须从表单中删除字段#3,如果字段#1 的值等于false
,则需要将字段#3 放回表单中。
我没有找到一种简单、干净的方法来做到这一点。
redux-form 站点上的一个示例解释了如何根据表单容器的状态动态构建表单。容器将字段数组作为 a 传递给表单组件prop
,控制字段数组的输入字段在容器内。我不能真正使用这种方法,因为字段 #1 必须在表单内。
我尝试使用 CSS 简单地隐藏字段 #3,但是验证规则不知道哪些字段被隐藏。
javascript - 如何在 React 中使用 React/Redux 表单在编辑中获取帖子值
我正在用 react redux 制作简单的博客。作为包,我使用的是 redux 表单,我制作了诸如发布、获取、删除之类的事件,但我无法编辑表单,因为我无法在编辑中获取值标题和正文。我尝试通过在 componentwillMount 中进行初始化来解决它,但是 当我在 ComponentWillMount 中编写this.props.edit.title时,无法读取未定义的属性“标题”会出错
我该如何解决这个问题,如何在编辑表单中获取值
reactjs - Redux-form handleSubmit:如何访问 store 状态?
在进行 Ajax 调用的 redux-formhandleSubmit
函数中,Ajax 中需要一些来自 Redux 状态的属性(例如用户 ID)。
如果我想在表单的组件中定义这将很容易handleSubmit
:只需调用mapStateToProps
传入我需要的任何内容,然后从this.props
我的handleSubmit
.
但是,就像一个优秀的 React-Redux 开发人员一样,我编写了单独的视图组件和容器,因此我的视图组件可以很简单,几乎没有行为。因此,我想在我的容器中定义 handleSubmit。
再次,简单的 - redux-form 被设置为做到这一点。定义一个onSubmit
in mapDispatchToProps
,表单会自动调用它。
除了,哦等等,mapDispatchToProps
没有办法访问 redux 状态。
好的,没问题,我只需将我需要的道具handleSubmit
与表单值一起传递。
嗯,等等,使用这种机制是不可能传递任何数据的handleSubmit
!你得到一个参数,values
,并且没有办法添加另一个参数。
这留下了以下没有吸引力的替代方案(我可以验证 1 和 2 是否有效):
1在表单组件中定义一个提交处理程序,并从那里调用从 mapDispatchToProps 传入的我自己的自定义提交处理程序函数。这没关系,但需要我的组件知道一些来自 redux 状态的道具,这些道具不需要显示表单。(这个问题不是 redux-form 独有的。)
或者,更简洁地说,这都可以组合成一个箭头函数:
然后为了使这个处理程序完全不可知,它可以将整个 this.props 传回自定义处理程序:
2在mergeProps 中定义onSubmit而不是mapDispatchToProps,这样就可以访问stateProps。Dan Abramov 建议不要使用 mergeProps(出于性能原因),所以这似乎不是最理想的。
3将状态属性复制到未映射到表单组件中的任何输入控件的redux-form 字段中。这将确保它们可以在values
传递回的参数中访问handleSubmit
。这似乎是一种黑客行为。
一定有更好的办法!
有没有更好的办法?
ajax - 结构化 Ajax 调用 Redux-Form 动作以用 Mongo 表达
我对 JS 和反应比较陌生,我正在使用 Redux-Form 将一个简单的项目添加到我的 mongo db 中。我已经配置了表单,并且 API 是使用 db 连接定义的,但我认为我没有正确地在操作中构建我的代码,以便它以一种可以解释的方式发送数据。
具体来说,我在按下提交后看到了表单数据,但出现 500 错误。有人可以指出我适当地塑造我的 ajax 请求的方向,以便接收数据库帖子的可用数据吗?
新物品形式:
行动
表达 index.js
newItem 的 api 端点
process_params (/Users/mary/working-files/closet-redux/node_modules/express/lib/router/index.js:330:12) 在下一个 (/Users/mary/working-files/closet-redux/node_modules/express /lib/router/index.js:271:10) 立即。(/Users/mary/working-files/closet-redux/node_modules/express-session/index.js:432:7)