将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,但是新版本允许更多类型。