Skip to content

Commit

Permalink
fix(transformer): 循环中自动的生成类型防御找不到值,fix #2037
Browse files Browse the repository at this point in the history
  • Loading branch information
yuche committed Jan 25, 2019
1 parent 81455f5 commit 27234e1
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions packages/taro-transformer-wx/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,12 +140,12 @@ export function setParentCondition (jsx: NodePath<t.Node>, expr: t.Expression, a
if (prevElement && prevElement.isJSXElement()) {
const attr = prevElement.node.openingElement.attributes.find(a => a.name.name === Adapter.if)
if (attr && t.isJSXExpressionContainer(attr.value)) {
expr = t.conditionalExpression(reverseBoolean(attr.value.expression), expr, t.arrayExpression())
expr = t.conditionalExpression(reverseBoolean(cloneDeep(attr.value.expression)), expr, t.arrayExpression())
return expr
}
}
} else if (t.isJSXExpressionContainer(attr.value)) {
expr = t.conditionalExpression(attr.value.expression, expr, t.arrayExpression())
expr = t.conditionalExpression(cloneDeep(attr.value.expression), expr, t.arrayExpression())
return expr
}
}
Expand All @@ -154,13 +154,13 @@ export function setParentCondition (jsx: NodePath<t.Node>, expr: t.Expression, a
if (conditionExpr && conditionExpr.isConditionalExpression()) {
const consequent = conditionExpr.get('consequent')
if (consequent === jsx || jsx.findParent(p => p === consequent)) {
expr = t.conditionalExpression(conditionExpr.get('test').node as any, expr, array ? t.arrayExpression([]) : t.nullLiteral())
expr = t.conditionalExpression(cloneDeep(conditionExpr.get('test').node) as any, expr, array ? t.arrayExpression([]) : t.nullLiteral())
}
}
if (logicExpr && logicExpr.isLogicalExpression({ operator: '&&' })) {
const consequent = logicExpr.get('right')
if (consequent === jsx || jsx.findParent(p => p === consequent)) {
expr = t.conditionalExpression(logicExpr.get('left').node as any, expr, array ? t.arrayExpression([]) : t.nullLiteral())
expr = t.conditionalExpression(cloneDeep(logicExpr.get('left').node) as any, expr, array ? t.arrayExpression([]) : t.nullLiteral())
}
}
return expr
Expand Down

0 comments on commit 27234e1

Please sign in to comment.