From 6cc7567effecf0df222a9e452d8bcac4a0eb727c Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Fri, 13 Mar 2015 17:07:01 -0700 Subject: [PATCH] Merge pull request #3410 from robertknight/3409-style-null-to-nonnull Fix incorrect update of style when props.style transitions from null to non-null (cherry picked from commit bcd70ad500612eb49c34412625577eaeb85c75b8) --- src/browser/ui/ReactDOMComponent.js | 1 + src/browser/ui/__tests__/ReactDOMComponent-test.js | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/browser/ui/ReactDOMComponent.js b/src/browser/ui/ReactDOMComponent.js index 3d2c2332b8..be2b3c7b48 100644 --- a/src/browser/ui/ReactDOMComponent.js +++ b/src/browser/ui/ReactDOMComponent.js @@ -350,6 +350,7 @@ ReactDOMComponent.Mixin = { styleUpdates[styleName] = ''; } } + this._previousStyleCopy = null; } else if (registrationNameModules.hasOwnProperty(propKey)) { deleteListener(this._rootNodeID, propKey); } else if ( diff --git a/src/browser/ui/__tests__/ReactDOMComponent-test.js b/src/browser/ui/__tests__/ReactDOMComponent-test.js index 8b4a98eb07..efcfb3c01a 100644 --- a/src/browser/ui/__tests__/ReactDOMComponent-test.js +++ b/src/browser/ui/__tests__/ReactDOMComponent-test.js @@ -152,6 +152,17 @@ describe('ReactDOMComponent', function() { expect(stubStyle.color).toEqual(''); }); + it("should update styles when 'style' changes from null to object", function() { + var container = document.createElement('div'); + var styles = {color: 'red'}; + React.render(
, container); + React.render(
, container); + React.render(
, container); + + var stubStyle = container.firstChild.style; + expect(stubStyle.color).toEqual('red'); + }); + it("should empty element when removing innerHTML", function() { var container = document.createElement('div'); React.render(
, container);