teslamotors/informed

onSubmit - setError is not a function

cherring07 opened this issue · 1 comments

Perhaps undocumented (sorry if I have missed it)

When using the useFormAPI hook with setError within onSubmitI get the following error.

formApi.setError is not a function

const Test= () => {
  const formApi = useFormApi();

  const onSubmit = () => {
    formApi.setError('example', 'error!');
  };
  
  render (  
     <Form onSubmit={onSubmit}>
      <Input name="example" label="Example" />
      <button type="submit">Submit</button>)
     </Form>
     );
}

You are outside the context of the form.

  1. I would highly reccomend NOT setting errors directly as there is a lifecylce for this
  2. If you do need the formApi outside of the context of a <Form you need to use <Form formApiRef={someRef}

Then you can do formApiRef.current.setValue('example', 'Foo') as an example