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));
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

View File

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

View File

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