Handle single child when using React inlining

Changes optimisation.react.inlineElements to handle a single child as the
value of the `children` property instead of wrapping it with an array.
This matches the behavior of `React.createElement`.
This commit is contained in:
Conrad Zimmerman 2015-07-03 18:55:38 -04:00
parent bd1bd38556
commit 224db29c05
3 changed files with 6 additions and 4 deletions

View File

@ -49,7 +49,9 @@ export var visitor = {
pushElemProp("ref", t.literal(null)); pushElemProp("ref", t.literal(null));
if (node.children.length) { if (node.children.length) {
pushProp(props.properties, t.identifier("children"), t.arrayExpression(react.buildChildren(node))); var children = react.buildChildren(node);
children = children.length === 1 ? children[0] : t.arrayExpression(children);
pushProp(props.properties, t.identifier("children"), children);
} }
// props // props

View File

@ -16,11 +16,11 @@ function render() {
type: "foo", type: "foo",
ref: null, ref: null,
props: { props: {
children: [text] children: text
}, },
key: null key: null
}; };
return function () { return function () {
return _ref2; return _ref2;
}; };
} }

View File

@ -4,7 +4,7 @@
type: "div", type: "div",
ref: null, ref: null,
props: { props: {
children: [bar], children: bar,
className: "foo" className: "foo"
}, },
key: null key: null