File tree Expand file tree Collapse file tree 2 files changed +18
-10
lines changed Expand file tree Collapse file tree 2 files changed +18
-10
lines changed Original file line number Diff line number Diff line change @@ -21,11 +21,8 @@ export default function renderToString(vnode) {
21
21
22
22
// components
23
23
if ( typeof nodeName === 'function' ) {
24
- let props = { children } ,
24
+ let props = { children, ... attributes } ,
25
25
rendered ;
26
- for ( let i in attributes ) if ( HOP . call ( attributes , i ) ) {
27
- props [ i ] = attributes [ i ] ;
28
- }
29
26
30
27
if ( typeof nodeName . prototype . render !== 'function' ) {
31
28
// stateless functional components
@@ -42,14 +39,18 @@ export default function renderToString(vnode) {
42
39
43
40
// render JSX to HTML
44
41
let s = `<${ nodeName } ` ;
45
- for ( let name in attributes ) if ( HOP . call ( attributes , name ) ) {
46
- s += ` ${ name } ="${ escape ( attributes [ name ] ) } "` ;
42
+ for ( let name in attributes ) {
43
+ if ( HOP . call ( attributes , name ) ) {
44
+ let v = attributes [ name ] ;
45
+ if ( v !== null && v !== undefined ) {
46
+ s += ` ${ name } ="${ escape ( v ) } "` ;
47
+ }
48
+ }
47
49
}
50
+ s += '>' ;
48
51
if ( children && children . length ) {
49
- s += `>${ children . map ( renderToString ) . join ( '' ) } </${ nodeName } >` ;
50
- }
51
- else {
52
- s += ' />' ;
52
+ s += children . map ( renderToString ) . join ( '' ) ;
53
53
}
54
+ s += `</${ nodeName } >`
54
55
return s ;
55
56
} ;
Original file line number Diff line number Diff line change @@ -13,6 +13,13 @@ describe('render-to-string', () => {
13
13
14
14
expect ( rendered ) . to . equal ( expected ) ;
15
15
} ) ;
16
+
17
+ it ( 'should omit null and undefined attributes' , ( ) => {
18
+ let rendered = render ( < div a = { null } b = { undefined } /> ) ,
19
+ expected = `<div></div>` ;
20
+
21
+ expect ( rendered ) . to . equal ( expected ) ;
22
+ } ) ;
16
23
} ) ;
17
24
18
25
describe ( 'Functional Components' , ( ) => {
You can’t perform that action at this time.
0 commit comments