diff --git a/editor/editor/layout.js b/editor/editor/layout.js
index 5ee4136687aa73..064972747b7633 100644
--- a/editor/editor/layout.js
+++ b/editor/editor/layout.js
@@ -9,8 +9,6 @@ class Layout extends wp.element.Component {
 	constructor( props ) {
 		super( ...arguments );
 		this.switchMode = this.switchMode.bind( this );
-		this.changeHtml = this.changeHtml.bind( this );
-		this.changeBlocks = this.changeBlocks.bind( this );
 		this.state = {
 			mode: 'visual',
 			html: props.initialContent,
@@ -29,16 +27,8 @@ class Layout extends wp.element.Component {
 		} );
 	}
 
-	changeHtml( html ) {
-		this.setState( {
-			html
-		} );
-	}
-
-	changeBlocks( blocks ) {
-		this.setState( {
-			blocks
-		} );
+	createChangeHandler( type ) {
+		return ( value ) => this.setState( { [ type ]: value } );
 	}
 
 	render() {
@@ -49,8 +39,8 @@ class Layout extends wp.element.Component {
 					<ModeSwitcher mode={ mode } onSwitch={ this.switchMode } />
 				</div>
 				<div className="editor__body">
-					{ mode === 'text' && <EditorText html={ html } onChange={ this.changeHtml } /> }
-					{ mode === 'visual' && <EditorVisual blocks={ blocks } onChange={ this.changeBlocks } /> }
+					{ mode === 'text' && <EditorText html={ html } onChange={ this.createChangeHandler( 'html' ) } /> }
+					{ mode === 'visual' && <EditorVisual blocks={ blocks } onChange={ this.createChangeHandler( 'blocks' ) } /> }
 				</div>
 			</div>
 		);