【问题标题】:redux form, Field component issuesredux 表单,Field 组件问题
【发布时间】:2016-08-31 19:30:35
【问题描述】:

我在代码中使用 Redux 表单中的“字段”组件时遇到了一些问题。只需按照 redux-form 网站上的简单示例即可。

/* MyForm.jsx */
...
import { Field, reduxForm } from 'redux-form';

class MyForm extends Component {
    ...
    <form onSubmit={handleSubmit(...)}>
        <div>
            <label>First Name</label>
            <div>
                <Field name="firstName" component="input" type="text" placeholder="First Name"/>
            </div>
        </div>
        ...
}

export default reduxForm({
    form: 'myForm'
})(MyForm);

这里是使用 redux 表单的父组件。

/* page.jsx */
import MyForm from './MyForm';
...
<MyForm/>
...

表单未呈现,并且在控制台中显示错误:

React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components).

Uncaught Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.

但是,如果我使用 material-ui 或引导表单字段,它可以正常工作。

我在渲染表单之前安装了表单缩减器:

import {reducer as formReducer} from 'redux-form';
const myReducer = combineReducers({
    ...
    form: formReducer
});

任何想法为什么 Fields 组件不起作用?

谢谢,

【问题讨论】:

  • 你用的是什么版本的 redux 表单?
  • 您是否尝试过升级到 v 6.0?

标签: redux-form


【解决方案1】:

尝试将您的 redux 升级到 6.0。我相信字段组件从 v6.0 开始。

【讨论】:

  • 是的,升级到 6.0.1 解决了字段错误。但是,在 6.0.1 中,表单字段的格式已从 Array 更改为 Object。那么我当前字段的正确格式是什么? formFields = ['名字','姓氏','密码']
  • formFields={[ 'firstname', 'lastname' , 'password' ]}
  • 我在这里看到了一个例子:redux-form.com/6.0.1/docs/api/Fields.md。但还没有看到关于它的文档或用法示例。谢谢,
猜你喜欢
  • 2017-07-26
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 2022-09-28
  • 1970-01-01
相关资源
最近更新 更多