FormSpyProps
These are the props that you pass to <FormSpy/>
. If you do not provide an onChange
callback, you must provide one of the ways to render: component
, render
, or children
.
children
(props: FormRenderProps) => React.Node
Optional. (if you specify component
or render
or onChange
)
A render function that is given FormSpyRenderProps
, as well as any non-API props passed into the <FormSpy/>
component. For example, if you did...
<FormSpy someArbitraryOtherProp={42}>
{props => {
console.log(props.someArbitraryOtherProp) // would print 42
return <pre>{JSON.stringify(props.values, undefined, 2)}</pre>
}}
</FormSpy>
Note that if you specify render
and children
, render
will be called, with children
injected as if it were an additional prop.
Will not be called if an onChange
callback is specified.
Related:
component
React.ComponentType<FormSpyRenderProps>
Optional. It is recommended that you use children
or render
.
A component that is given FormSpyRenderProps
as props, as well as any non-API props passed into the <FormSpy/>
component. For example, if you did...
<FormSpy
component={MyFormSpyComp}
someArbitraryOtherProp={42} />
const MyFormSpyComp = props => {
console.log(props.someArbitraryOtherProp) // would print 42
return <pre>{JSON.stringify(props.values, undefined, 2)}</pre>
}
Note that your component will be rendered using React.createElement()
resulting in your component actually being in the React node tree, i.e. inspectable in DevTools.
Will not be called if an onChange
callback is specified.
Related:
onChange
(formState: FormState) => void
Optional.
A change listener that will be called with form state whenever the form state, as subscribed to by the subscription
prop, has changed.
When an onChange
prop is provided, the <FormSpy/>
will not render anything.
render
(props: FormSpyRenderProps) => React.Node
Optional. (if you specify component
or children
or onChange
)
A render function that is given FormSpyRenderProps
, as well as any non-API props passed into the <FormSpy/>
component. For example, if you did...
<FormSpy
someArbitraryOtherProp={42}
render={props => {
console.log(props.someArbitraryOtherProp) // would print 42
return <pre>{JSON.stringify(props.values, undefined, 2)}</pre>
}}
/>
Note that if you specify render
and children
, render
will be called, with children
injected as if it were an additional prop.
Will not be called if an onChange
callback is specified.
Related:
subscription
{ [string]: boolean }
Optional. Advanced Usage
An object of the parts of FormState
to subscribe to. If a subscription is provided, the <FormSpy/>
will only rerender when those parts of form state change.
If no subscription
is provided, it will default to subscribing to all form state changes. i.e. <FormSpy/>
will rerender whenever any part of the form state changes.
Related: