将Material-ui v3升级到v4会导致Redux表单字段组件错误“无效的prop组件”

问题描述

material-ui v3升级到v4 后,对于包含道具<Field>的所有component组件,我得到以下错误

错误

警告:道具类型失败:提供给的道具component无效 Field

字段组件来自import { Field } from 'redux-form';

该组件如下所示:

        <Field
            id="some-id"
            name="some-name"
            component={renderSelectField}
        />

代码可以编译并正常运行。

renderSelectField组件:

 <TextField
            select
            id={label}
            label={label}
            type={label}
            value={value}
            SelectProps={{
                MenuProps: {
                    PaperProps: {
                        style: {
                            maxHeight: 500,paddingLeft: 12,paddingRight: 12,},}}
            onChange={onChange}
        >

解决方法

更新以下React依赖关系(react redux v7,redux form v8):

"react-redux": "^7.2.1","redux-form": "^8.3.6",

说明:

material-ui升级后,您很可能会在控制台中看到forwardRef错误。在新版本的MUI和react挂钩中使用React.forwardRef。

以前的反应是,redux版本仅允许将特定数据类型分配给组件prop,但是新版本允许更多类型。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...