问题标签 [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.

0 投票
1 回答
936 浏览

javascript - 更改附加到 redux 状态的值时,redux-form 字段正在重置

我已经配置了一个包含三个字段的 redux-form,如下所示:

每个字段都根据文档传播传递的道具,例如 {...email}。terms 复选框包含一个 onChange ,它调用一个 actionCreator 来更新我的 redux 状态:

单击复选框时,电子邮件和密码字段都重置为空白,这不是我想要的。

0 投票
1 回答
1588 浏览

reactjs - 结合 Draft-js 和 redux-form

我有一个带有 2 个常用输入的表单,我可以在其中使用这种常用方法:

而且我在表单中有一个 draftJS 编辑器。我需要draft-js-export-html在提交时将 draftJS 内容转换为 HTML(通过),并在组件安装过程中将 html 加载到它。如何将它与 redux-form 结合起来?

0 投票
1 回答
774 浏览

reactjs - 如果您的提交不在 redux-form 范围内怎么办

如果您的提交超出表格怎么办?

例子:

我应该使用 getValues 吗?

0 投票
1 回答
778 浏览

reactjs - 我可以将 redux-form [v6] 连接到其他状态,例如 [v5] 吗?

我可以在redux-formmapStateToProps中配置和其他 react-redux 参数吗?v6

像这样在redux-formv5中~> http://i.stack.imgur.com/nSZKM.jpg

创建一个装饰器,使用 redux-form 将表单组件连接到 Redux。它接受一个配置参数,然后可选地 mapStateToProps、mapDispatchToProps、mergeProps 和选项参数,这些参数与 react-redux 的 connect() 函数采用的参数完全对应,允许您将表单组件连接到 Redux 中的其他状态。

.

例如:

0 投票
1 回答
1176 浏览

reactjs - redux-form-material-ui 使用 getRenderedComponent() 总是抛出一个错误

我基于redux-form-material-ui repo的官方示例。我的代码如下所示:

我只为第一个有错误的字段传递focuswithRef属性。在这个领域我总是得到一个错误:Uncaught (in promise) Error: If you want to access getRenderedComponent(), you must specify a withRef prop to Field(…)

我能够看到两者refwithRef传递给Field. 然后在组件中ref="wrappedInstance"我仍然可以看到withRef="true". 它没有被更深地传递。

我将不胜感激任何想法如何解决它。

0 投票
1 回答
135 浏览

reactjs - REdux Form : 根据条件显示字段

假设我有一个类似这样的 redux 形式。

现在 phone 字段始终存在,而 fullName 字段根据某些条件检查是动态的。

我的表单提交是这样的:

在我的 handleSubmit 函数中,我有:

现在,我想要的是基于我希望验证工作的条件。如果仅渲染电话,则仅对电话字段进行验证检查。如果两者都呈现 - 验证两者。

我已经为用户名字段提供了一个条件,这取决于条件有时会呈现,有时不会呈现。

但是当它不呈现时,在提交表单时,我无法在 if 条件内移动,因为用户名正在被验证,尽管它没有被呈现。

现在,我如何根据我的需要避免这种验证。

0 投票
2 回答
206 浏览

redux - 以 redux 形式重新格式化 initialValues

我正在加载 Redux 表单,并将 initialValues 作为道具传递。但是,我需要重新格式化数据以适合我的表单名称..例如,如果作为道具传递的 initialValues 中的数据是 {name: 'John', age: '32'},我想将其转换为 {user :{姓名:'约翰',年龄:'32'}}。你如何实现它?您是否编写了一个 reducer 来完成此操作,如果是,那么您如何在组件加载时调用它?

谢谢。

0 投票
1 回答
385 浏览

reactjs - Redux 表单 - 提交对象 id

我是 Redux Form 的新手,在弄清楚如何设置特定流程时遇到了一些问题。所以我有一个创建新用户的表格。在此表单上,我有一个按钮,管理员单击该按钮可将用户添加到特定组织(用户模型与组织 ID 相关联 - 用户属于组织)。单击该按钮时,会弹出一个模式窗口,允许用户搜索组织列表并选择特定组织。管理员在模式中选择组织后,我想在原始新用户表单的禁用文本字段中显示组织名称。这是我的困境。提交表单时,我想提交组织 ID,而不是组织名称。

我知道我可以通过几种不同的方式实现这一点,但我想知道其他人认为解决这个问题的最佳方法是什么?在模式中单击组织时,我是否应该更改 selectedOrgId 的状态,然后在提交表单时将该状态传递到我的 createUser 操作中?或者我应该在表单上包含一个隐藏的输入字段并将值设置为等于 this.state.selectedOrgId ,然后通过表单道具提交organizationId?

有没有一种更简单的方法可以使用我完全缺少的 Redux Form 来实现这一点?

0 投票
0 回答
1607 浏览

reactjs - Material-ui Textfield 在第一个 redux-form/FOCUS 上自动向上滚动窗口

我使用redux-form和Material -ui中的Textfield制作了一个表单来发送电子邮件。除了一件事,一切都运行良好:当我第一次单击 TextField 时,窗口向上滚动。有时,焦点停留在 TextField 上。之后它工作正常

这是正在发生的事情的示例示例

我的表格:

使用表单的组件:

导入的主题包含用于material-ui 样式的颜色。我还发现 TextFields 的 onFocus 和 onBlur 道具不起作用。我试图简单地记录文本,但它不起作用。

更奇怪的是,这不是我第一次使用这个 emailForm。我在另一个网站上使用它,它工作得很好。

有人知道为什么会这样吗?

0 投票
4 回答
1524 浏览

reactjs - 使用 redux-form 6.0.0-rc.3 的“this.props”中未显示动作创建者

当我使用 redux-form 5.3.1 时,我能够访问我的动作创建者。但由于我需要 Material-UI,我将其更新为 6.0.0-rc.3。

从 5.3.1 到 6.0.0 的变化:

  • 从 render() 中删除的字段:

const { handleSubmit, fields: { email, password, passwordConfirm }} = this.props;

  • 从输入中删除了错误验证:

{email.touched && email.error && <div className="error">{email.error}</div>}

  • 从导出默认值中删除了字段数组:

export default reduxForm({ form: 'signup', fields: ['email', 'password', 'passwordConfirm'], validate }, mapStateToProps, actions)(Signup);

  • 为 Material-UI 组件添加了包装器:

import { renderTextField, renderCheckbox, renderSelectField, renderDatePicker } from '../material-ui-wrapper';

代码:

1 - console.log(this.props) 不记录任何操作创建者- 应该记录 signupUser 函数

编辑

改变:

export default reduxForm({ form: 'signup', validate }, mapStateToProps, actions)(Signup);

至:

Signup = reduxForm({ form: 'signup', validate })(Signup); export default Signup = connect(mapStateToProps, actions)(Signup);

奏效了。这是解决此问题的最正确方法吗?