在ReduxForm(<mycomp>)`中将fields标记为必需,但其值为undefined。

时间:2019-03-23 09:02:23

标签: redux redux-form

我正在尝试使用redux-form

// rootRedcer.ts
import { combineReducers } from 'redux'
import { reducer as formReducer } from 'redux-form'

import translation from './translation/reducer'

export default combineReducers({
    form: formReducer,
    translation,
})

// components/DashboardHome/index.tsx
import { connect } from 'react-redux'
import DashboardHome from './Home'

export default connect()(DashboardHome)
// components/DashboardHome/DashboardHome.tsx
import * as React from 'react'
import { Field, reduxForm } from 'redux-form'

function handleSubmit(value) { console.log(value) }

const DashboardHome = () => (
    <form onSubmit={handleSubmit}>
        <div>
            <label htmlFor="firstName">First Name</label>
            <Field name="firstName" component="input" type="text" />
        </div>
        <div>
            <label htmlFor="lastName">Last Name</label>
            <Field name="lastName" component="input" type="text" />
        </div>
        <div>
            <label htmlFor="email">Email</label>
            <Field name="email" component="input" type="email" />
        </div>
        <button type="submit">Submit</button>
    </form>
)

export default reduxForm({
    form: 'registration'
})(DashboardHome)

但是我得到一个错误

Failed prop type: The prop `fields` is marked as required in 
`ReduxForm(DashboardHome)`, but its value is `undefined`.

错误原因是什么?我做错了什么? 谢谢

2 个答案:

答案 0 :(得分:0)

我将'react'和'react-dom'软件包从当前版本(v16.8.4)降级到16.6.3,该错误消失了。 react-dom和redux-form之间可能存在冲突。

答案 1 :(得分:0)

降级对我不起作用。 切换到 formik

如我所见,redux-form发生了重大更改。 Demo example doesn't work