diff --git a/src/browser/ui/ReactDOMComponent.js b/src/browser/ui/ReactDOMComponent.js index e8ecbbf230..b9719b3686 100644 --- a/src/browser/ui/ReactDOMComponent.js +++ b/src/browser/ui/ReactDOMComponent.js @@ -307,7 +307,7 @@ ReactDOMComponent.Mixin = { // Unset styles on `lastProp` but not on `nextProp`. for (styleName in lastProp) { if (lastProp.hasOwnProperty(styleName) && - !nextProp.hasOwnProperty(styleName)) { + (!nextProp || !nextProp.hasOwnProperty(styleName))) { styleUpdates = styleUpdates || {}; styleUpdates[styleName] = ''; } diff --git a/src/browser/ui/__tests__/ReactDOMComponent-test.js b/src/browser/ui/__tests__/ReactDOMComponent-test.js index d4fb449923..72111cd5f6 100644 --- a/src/browser/ui/__tests__/ReactDOMComponent-test.js +++ b/src/browser/ui/__tests__/ReactDOMComponent-test.js @@ -97,6 +97,11 @@ describe('ReactDOMComponent', function() { expect(stubStyle.display).toEqual('block'); expect(stubStyle.fontFamily).toEqual('Helvetica'); expect(stubStyle.lineHeight).toEqual('0.5'); + + stub.receiveComponent({props: { style: undefined }}, transaction); + expect(stubStyle.display).toBe(''); + expect(stubStyle.fontFamily).toBe(''); + expect(stubStyle.lineHeight).toBe(''); }); it("should update styles if initially null", function() {