diff --git a/packages/block-editor/src/components/provider/index.js b/packages/block-editor/src/components/provider/index.js index 9841f79d509a9..43f336325434d 100644 --- a/packages/block-editor/src/components/provider/index.js +++ b/packages/block-editor/src/components/provider/index.js @@ -99,10 +99,15 @@ class BlockEditorProvider extends Component { // This happens when a previous input is explicitely marked as persistent. ( newIsPersistent && ! isPersistent ) ) { + // When knowing the blocks value is changing, assign instance + // value to skip reset in subsequent `componentDidUpdate`. + if ( newBlocks !== blocks ) { + this.isSyncingOutcomingValue = true; + } + blocks = newBlocks; isPersistent = newIsPersistent; - this.isSyncingOutcomingValue = true; if ( isPersistent ) { onChange( blocks ); } else {