move react children coercion to opening element visitor - fixes #1276
This commit is contained in:
parent
a44831b3fa
commit
7d4ecea8fb
@ -57,6 +57,8 @@ export default function (exports, opts) {
|
|||||||
|
|
||||||
exports.JSXOpeningElement = {
|
exports.JSXOpeningElement = {
|
||||||
exit(node, parent, scope, file) {
|
exit(node, parent, scope, file) {
|
||||||
|
parent.children = react.buildChildren(parent);
|
||||||
|
|
||||||
var tagExpr = node.name;
|
var tagExpr = node.name;
|
||||||
var args = [];
|
var args = [];
|
||||||
|
|
||||||
@ -144,10 +146,6 @@ export default function (exports, opts) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
exports.JSXElement = {
|
exports.JSXElement = {
|
||||||
enter(node) {
|
|
||||||
node.children = react.buildChildren(node);
|
|
||||||
},
|
|
||||||
|
|
||||||
exit(node) {
|
exit(node) {
|
||||||
var callExpr = node.openingElement;
|
var callExpr = node.openingElement;
|
||||||
|
|
||||||
|
|||||||
5
src/babel/transformation/helpers/react.js
vendored
5
src/babel/transformation/helpers/react.js
vendored
@ -34,9 +34,8 @@ function cleanJSXElementLiteralChild(child, args) {
|
|||||||
var lines = child.value.split(/\r\n|\n|\r/);
|
var lines = child.value.split(/\r\n|\n|\r/);
|
||||||
|
|
||||||
var lastNonEmptyLine = 0;
|
var lastNonEmptyLine = 0;
|
||||||
var i;
|
|
||||||
|
|
||||||
for (i = 0; i < lines.length; i++) {
|
for (let i = 0; i < lines.length; i++) {
|
||||||
if (lines[i].match(/[^ \t]/)) {
|
if (lines[i].match(/[^ \t]/)) {
|
||||||
lastNonEmptyLine = i;
|
lastNonEmptyLine = i;
|
||||||
}
|
}
|
||||||
@ -44,7 +43,7 @@ function cleanJSXElementLiteralChild(child, args) {
|
|||||||
|
|
||||||
var str = "";
|
var str = "";
|
||||||
|
|
||||||
for (i = 0; i < lines.length; i++) {
|
for (let i = 0; i < lines.length; i++) {
|
||||||
var line = lines[i];
|
var line = lines[i];
|
||||||
|
|
||||||
var isFirstLine = i === 0;
|
var isFirstLine = i === 0;
|
||||||
|
|||||||
@ -0,0 +1,11 @@
|
|||||||
|
var HelloMessage = React.createClass({
|
||||||
|
render: function() {
|
||||||
|
return <div>Hello {this.props.name}</div>;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
React.render(<HelloMessage name={
|
||||||
|
<span>
|
||||||
|
Sebastian
|
||||||
|
</span>
|
||||||
|
} />, mountNode);
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
var HelloMessage = React.createClass({
|
||||||
|
displayName: "HelloMessage",
|
||||||
|
|
||||||
|
render: function render() {
|
||||||
|
return React.createElement(
|
||||||
|
"div",
|
||||||
|
null,
|
||||||
|
"Hello ",
|
||||||
|
this.props.name
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
React.render(React.createElement(HelloMessage, { name: React.createElement(
|
||||||
|
"span",
|
||||||
|
null,
|
||||||
|
"Sebastian"
|
||||||
|
) }), mountNode);
|
||||||
Loading…
x
Reference in New Issue
Block a user