From 70c07c67b74b7c62c524f80f7e7b27a8e09eb7f1 Mon Sep 17 00:00:00 2001 From: Niole Nelson Date: Fri, 24 Jul 2015 18:36:54 -0400 Subject: [PATCH] resolves issue #4168, style prop error now names React class that erroring element is a child of. --- src/renderers/dom/shared/ReactDOMComponent.js | 3 ++- .../shared/__tests__/ReactDOMComponent-test.js | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/renderers/dom/shared/ReactDOMComponent.js b/src/renderers/dom/shared/ReactDOMComponent.js index 4301b3438e..c06e3e1fc1 100644 --- a/src/renderers/dom/shared/ReactDOMComponent.js +++ b/src/renderers/dom/shared/ReactDOMComponent.js @@ -261,7 +261,8 @@ function assertValidProps(component, props) { props.style == null || typeof props.style === 'object', 'The `style` prop expects a mapping from style properties to values, ' + 'not a string. For example, style={{marginRight: spacing + \'em\'}} when ' + - 'using JSX.' + 'using JSX.%s', + getDeclarationErrorAddendum(component) ); } diff --git a/src/renderers/dom/shared/__tests__/ReactDOMComponent-test.js b/src/renderers/dom/shared/__tests__/ReactDOMComponent-test.js index 55bb5c5748..21da279ab0 100644 --- a/src/renderers/dom/shared/__tests__/ReactDOMComponent-test.js +++ b/src/renderers/dom/shared/__tests__/ReactDOMComponent-test.js @@ -721,6 +721,23 @@ describe('ReactDOMComponent', function() { ); }); + it('should report component containing invalid styles', function() { + var Animal = React.createClass({ + render: function() { + return
; + }, + }); + + expect(function() { + React.render(, container); + }).toThrow( + 'Invariant Violation: The `style` prop expects a mapping from style ' + + 'properties to values, not a string. For example, ' + + 'style={{marginRight: spacing + \'em\'}} when using JSX. ' + + 'This DOM node was rendered by `Animal`.' + ); + }); + it('should properly escape text content and attributes values', function() { expect( ReactDOMServer.renderToStaticMarkup(