react icon indicating copy to clipboard operation
react copied to clipboard

FormBuilder onChange callback not triggered when options prop is provided

Open ceallachcappuccino opened this issue 1 month ago • 0 comments

Describe the bug The onChange callback of FormBuilder from @formio/react is not triggered when the options prop is provided. This happens even if options is an empty object (options={{}}). As soon as options is set, form changes made in the builder UI no longer invoke the onChange handler.

Version/Branch @formio/react: "6.1.1" Framework: Next.js (App/Pages Router)
Rendering: client-side only (ssr: false via dynamic import)

To Reproduce Steps to reproduce the behavior:

  1. Create a Next.js project and dynamically import FormBuilder:
   const FormBuilder = dynamic(
     () => import('@formio/react').then((module) => module.FormBuilder),
     { ssr: false }
   )
  1. Define a simple onChange callback:
const handleFormChange = (schema: FormType) => {
  console.log('i handled the change')
}
  1. Render FormBuilder with initialForm, onChange, and any options prop (even an empty object):
<FormBuilder
  initialForm={initialForm}
  onChange={handleFormChange}
  options={{}}
/>

(The same issue occurs with a fully customized options.builder configuration.)

  1. Interact with the FormBuilder UI (add/remove/update components).
  2. Observe that handleFormChange is never called.

Expected behavior The onChange callback should be triggered whenever the form schema changes in the FormBuilder, regardless of whether the options prop is provided (including options={{}}).

ceallachcappuccino avatar Dec 12 '25 10:12 ceallachcappuccino