我在代码中使用Redux Form中的“Field”组件时遇到了一些问题。只需按照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或bootstrap表单字段,它可以正常工作。
我在渲染表单之前安装了表单缩减器:
import {reducer as formReducer} from 'redux-form';
const myReducer = combineReducers({
...
form: formReducer
});
任何想法为什么Fields组件不起作用?
谢谢,
答案 0 :(得分:1)
尝试将redux升级到6.0。我相信Field组件从v6.0开始。