Search code examples
reactjsreduxredux-formflowtype

Cannot instantiate GetFormErrorInterface because GetFormErrorInterface [1] is not a polymorphic type


My code works fine, but I get this flow error when try to get redux form error from state:

Cannot instantiate GetFormErrorInterface because GetFormErrorInterface [1] is not a polymorphic type.

 node_modules/redux-form/lib/index.js.flow
 134│
 135│ declare export function getFormError(
 136│   getFormState: ?GetFormState
 137│ ): GetFormErrorInterface<*>
 138│
 139│ declare export function getFormNames(
 140│   getFormState: ?GetFormState

      node_modules/redux-form/lib/selectors/getFormError.types.js.flow
      [1]   2│ export type GetFormErrorInterface = (state: any) => any

Here is my code:

import { connect } from 'react-redux';
import { getFormError } from 'redux-form';
import { COMPACT_FORM_NAME } from '../data-layer/reviews/constants';
import {
    checkReviewQualityAsync,
    createReviewCompactAsync
} from '../data-layer/reviews/actions'; 


const enhance = compose(
   withRouter,
     connect(
     (state: RootState) => ({
       submitError: getFormError(COMPACT_FORM_NAME)(state),// << Here is the problem  
      }),
      {
       onCreateReview: createReviewCompactAsync,
       onCheckReviewQuality: checkReviewQualityAsync
      }
     )
 ); 

It seems that it will be easy to fix but I don't understand what is wrong and why I can't use GetFormError directly???? Please any help. Thank you in advance


Solution

  • You need to update your redux-form version. See https://github.com/erikras/redux-form/commit/f8044f3443491c61d0aa386a20cae550b2f3b265#diff-111f8503f86c1b55a6ca92cb33073fd1