From ab430e9b5c33cee5961b14ea3d0b5addf4404831 Mon Sep 17 00:00:00 2001 From: Greg Mooney Date: Thu, 5 Feb 2026 15:02:20 +0100 Subject: [PATCH] Don't rerender when changing selection --- packages/base/src/formbuilder/editform.tsx | 4 ++-- packages/base/src/formbuilder/objectform/baseform.tsx | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/base/src/formbuilder/editform.tsx b/packages/base/src/formbuilder/editform.tsx index a13668147..ef1fd76ab 100644 --- a/packages/base/src/formbuilder/editform.tsx +++ b/packages/base/src/formbuilder/editform.tsx @@ -95,7 +95,7 @@ export class EditForm extends React.Component {

Layer Properties

{

Source Properties

= props => { * It will be up to the user of this class to actually perform the creation/edit using syncdata. */ export class BaseForm extends React.Component { + /** Skip syncData for the initial onChange (RJSF populating form), only sync on user edits. */ + private isInitialLoadRef = true; + constructor(props: IBaseFormProps) { super(props); this.currentFormData = deepCopy(this.props.sourceData); @@ -106,6 +109,7 @@ export class BaseForm extends React.Component { this.currentFormData = deepCopy(this.props.sourceData); const schema = deepCopy(this.props.schema); this.setState(old => ({ ...old, schema })); + this.isInitialLoadRef = true; } } @@ -287,7 +291,11 @@ export class BaseForm extends React.Component { this.props.formErrorSignal.emit(extraErrors); } if (this.props.formContext === 'update') { - this.syncData(this.currentFormData); + if (!this.isInitialLoadRef) { + this.syncData(this.currentFormData); + } else { + this.isInitialLoadRef = false; + } } }