Scope::
Pf4FormTemplate
Description:
After upgrading @patternfly/react-core to the latest version, the following console error appears when running our app in development mode: Warning: Failed prop type: Invalid prop FormWrappersupplied toFormTemplate, expected one of type [function].
The error originates from the PF4FormTemplate component which imports Form from @patternfly/react-core:
https://github.com/data-driven-forms/react-forms/blob/master/packages/pf4-component-mapper/src/form-template/form-template.js#L6
Form is then supplied as the FormWrapper prop to FormTemplate:
https://github.com/data-driven-forms/react-forms/blob/master/packages/pf4-component-mapper/src/form-template/form-template.js#L79
FormTemplate in term expects FormWrapper to be a func propType:
https://github.com/data-driven-forms/react-forms/blob/master/packages/common/src/form-template/form-template.js#L174
I have discovered the cause of the problem. patternfly/patternfly-react@be2c23f refactored the Form component to support ref forwarding. Previously the typeof of Form was a function, however typeof of forwardRef is apparently actually object. This results in incorrect propTypes and a console error. This exact issue is discussed at length here: react/react#12453.
We are tracking the issue as it relates to our app here: osbuild/image-builder-frontend#907
I am not sure what a good solution looks like. Per the React docs, introducing forwardRef should be considered a breaking change. Unfortunately, that was not done. https://reactjs.org/docs/forwarding-refs.html#note-for-component-library-maintainers
Updating the propType would solve the problem in our app, but would be a breaking change (which is arguable, I suppose, given it is just a type warning) for anyone using a version of @patternfly/react-core released prior to the introduction of forwardRef in the Form component.
Scope::
Pf4FormTemplate
Description:
After upgrading
@patternfly/react-coreto the latest version, the following console error appears when running our app in development mode:Warning: Failed prop type: Invalid prop FormWrappersupplied toFormTemplate, expected one of type [function].The error originates from the
PF4FormTemplatecomponent which importsFormfrom@patternfly/react-core:https://github.com/data-driven-forms/react-forms/blob/master/packages/pf4-component-mapper/src/form-template/form-template.js#L6
Formis then supplied as theFormWrapperprop toFormTemplate:https://github.com/data-driven-forms/react-forms/blob/master/packages/pf4-component-mapper/src/form-template/form-template.js#L79
FormTemplatein term expectsFormWrapperto be afuncpropType:https://github.com/data-driven-forms/react-forms/blob/master/packages/common/src/form-template/form-template.js#L174
I have discovered the cause of the problem. patternfly/patternfly-react@be2c23f refactored the
Formcomponent to support ref forwarding. Previously thetypeofofFormwas a function, howevertypeofofforwardRefis apparently actuallyobject. This results in incorrect propTypes and a console error. This exact issue is discussed at length here: react/react#12453.We are tracking the issue as it relates to our app here: osbuild/image-builder-frontend#907
I am not sure what a good solution looks like. Per the React docs, introducing forwardRef should be considered a breaking change. Unfortunately, that was not done. https://reactjs.org/docs/forwarding-refs.html#note-for-component-library-maintainers
Updating the propType would solve the problem in our app, but would be a breaking change (which is arguable, I suppose, given it is just a type warning) for anyone using a version of
@patternfly/react-corereleased prior to the introduction offorwardRefin theFormcomponent.