Skip to content

Commit

Permalink
fix(mp): 修复mergeVirtualHostAttributes启用时编译到微信小程序skyline模式下页面白屏的Bug
Browse files Browse the repository at this point in the history
  • Loading branch information
Wangyaqi committed Jan 18, 2025
1 parent 90333b8 commit bcff953
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,23 @@ describe('complier: options with mergeVirtualHostAttributes', () => {
test('root node with mergeVirtualHostAttributes', () => {
assert(
`<image/>`,
`<image class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{a}}\"/>`,
`<image class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{a}}\"/>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, '') }
}`,
options
)
assert(
`<view><image/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{a}}\"><image/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{a}}\"><image/></view>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, '') }
}`,
options
)
assert(
`<view ref="page"><image ref="img" /></view>`,
`<view ref=\"page\" id=\"{{c}}\" style=\"{{$eS[c] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden}}\"><image ref=\"img\" id=\"r0-2a9ec0b0\" style=\"{{$eS[a]}}\"/></view>`,
`<view ref=\"page\" id=\"{{c}}\" style=\"{{$eS[c] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden || false}}\"><image ref=\"img\" id=\"r0-2a9ec0b0\" style=\"{{$eS[a]}}\"/></view>`,
`(_ctx, _cache) => {
const __returned__ = { a: _sei('r0-2a9ec0b0', 'image', 'img'), b: _s(_ses('r0-2a9ec0b0')), c: _sei(_gei(_ctx, '', 'r1-2a9ec0b0'), 'view', 'page'), d: _s(_ses(_gei(_ctx, '', 'r1-2a9ec0b0'))) }
return __returned__
Expand All @@ -45,23 +45,23 @@ describe('complier: options with mergeVirtualHostAttributes', () => {
test('root node style with mergeVirtualHostAttributes', () => {
assert(
`<image style="width:100%"/>`,
`<image class=\"{{[virtualHostClass]}}\" style=\"{{'width:100%' + ';' + virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{a}}\"/>`,
`<image class=\"{{[virtualHostClass]}}\" style=\"{{'width:100%' + ';' + virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{a}}\"/>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, '') }
}`,
options
)
assert(
`<image :style="style"/>`,
`<image style="{{a + ';' + virtualHostStyle}}" class="{{[virtualHostClass]}}" hidden="{{virtualHostHidden}}" id="{{b}}"/>`,
`<image style="{{a + ';' + virtualHostStyle}}" class="{{[virtualHostClass]}}" hidden="{{virtualHostHidden || false}}" id="{{b}}"/>`,
`(_ctx, _cache) => {
return { a: _s(_ctx.style), b: _gei(_ctx, '') }
}`,
options
)
assert(
`<image style="width:100%" :style="style"/>`,
`<image style="{{'width:100%' + ';' + a + ';' + virtualHostStyle}}" class="{{[virtualHostClass]}}" hidden="{{virtualHostHidden}}" id="{{b}}"/>`,
`<image style="{{'width:100%' + ';' + a + ';' + virtualHostStyle}}" class="{{[virtualHostClass]}}" hidden="{{virtualHostHidden || false}}" id="{{b}}"/>`,
`(_ctx, _cache) => {
return { a: _s(_ctx.style), b: _gei(_ctx, '') }
}`,
Expand All @@ -71,23 +71,23 @@ describe('complier: options with mergeVirtualHostAttributes', () => {
test('root node class with mergeVirtualHostAttributes', () => {
assert(
`<image class="class1"/>`,
`<image class=\"{{['class1', virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{a}}\"/>`,
`<image class=\"{{['class1', virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{a}}\"/>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, '') }
}`,
options
)
assert(
`<image :class="class1"/>`,
`<image class="{{[a, virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden}}" id="{{b}}"/>`,
`<image class="{{[a, virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{b}}"/>`,
`(_ctx, _cache) => {
return { a: _n(_ctx.class1), b: _gei(_ctx, '') }
}`,
options
)
assert(
`<image class="class1" :class="class1"/>`,
`<image class="{{['class1', a, virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden}}" id="{{b}}"/>`,
`<image class="{{['class1', a, virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{b}}"/>`,
`(_ctx, _cache) => {
return { a: _n(_ctx.class1), b: _gei(_ctx, '') }
}`,
Expand All @@ -97,39 +97,39 @@ describe('complier: options with mergeVirtualHostAttributes', () => {
test('root node hidden with mergeVirtualHostAttributes', () => {
assert(
`<image :hidden="hidden"/>`,
`<image hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden : a}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" id=\"{{b}}\"/>`,
`<image hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden || false : a}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" id=\"{{b}}\"/>`,
`(_ctx, _cache) => {
return { a: _ctx.hidden, b: _gei(_ctx, '') }
}`,
options
)
assert(
`<image :hidden="!show"/>`,
`<image hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden : a}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" id=\"{{b}}\"/>`,
`<image hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden || false : a}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" id=\"{{b}}\"/>`,
`(_ctx, _cache) => {
return { a: !_ctx.show, b: _gei(_ctx, '') }
}`,
options
)
assert(
`<image :hidden="false"/>`,
`<image hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden : false}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" id=\"{{a}}\"/>`,
`<image hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden || false : false}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" id=\"{{a}}\"/>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, '') }
}`,
options
)
assert(
`<image hidden/>`,
`<image class="{{[virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden !== '' ? virtualHostHidden : true}}" id="{{a}}"/>`,
`<image class="{{[virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden !== '' ? virtualHostHidden || false : true}}" id="{{a}}"/>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, '') }
}`,
options
)
assert(
`<image v-show="show"/>`,
`<image class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden : !a}}\" id=\"{{b}}\"/>`,
`<image class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden || false : !a}}\" id=\"{{b}}\"/>`,
`(_ctx, _cache) => {
return { a: _ctx.show, b: _gei(_ctx, '') }
}`,
Expand All @@ -139,31 +139,31 @@ describe('complier: options with mergeVirtualHostAttributes', () => {
test('root node id with mergeVirtualHostAttributes', () => {
assert(
`<image id="id1"/>`,
`<image class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{a}}\"/>`,
`<image class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{a}}\"/>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, 'id1') }
}`,
options
)
assert(
`<image :id="id1"/>`,
`<image id=\"{{a}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\"/>`,
`<image id=\"{{a}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\"/>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, _ctx.id1) }
}`,
options
)
assert(
`<image id="id1" :id="id1"/>`,
`<image id=\"{{a}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\"/>`,
`<image id=\"{{a}}\" class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\"/>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, 'id1') }
}`,
options
)
assert(
`<view :id="id1"></view>`,
`<view id=\"{{a}}\" style=\"{{$eS[a] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden}}\"></view>`,
`<view id=\"{{a}}\" style=\"{{$eS[a] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden || false}}\"></view>`,
`(_ctx, _cache) => {
const __returned__ = { a: _sei(_gei(_ctx, _ctx.id1), 'view'), b: _s(_ses(_gei(_ctx, _ctx.id1))) }
return __returned__
Expand All @@ -172,7 +172,7 @@ describe('complier: options with mergeVirtualHostAttributes', () => {
)
assert(
`<view id="page"><image ref="img" /></view>`,
`<view id=\"{{c}}\" style=\"{{$eS[c] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden}}\"><image ref=\"img\" id=\"r0-2a9ec0b0\" style=\"{{$eS[a]}}\"/></view>`,
`<view id=\"{{c}}\" style=\"{{$eS[c] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden || false}}\"><image ref=\"img\" id=\"r0-2a9ec0b0\" style=\"{{$eS[a]}}\"/></view>`,
`(_ctx, _cache) => {
const __returned__ = { a: _sei('r0-2a9ec0b0', 'image', 'img'), b: _s(_ses('r0-2a9ec0b0')), c: _sei(_gei(_ctx, 'page'), 'view'), d: _s(_ses(_gei(_ctx, 'page'))) }
return __returned__
Expand All @@ -181,7 +181,7 @@ describe('complier: options with mergeVirtualHostAttributes', () => {
)
assert(
`<view id="page" ref="page"><image ref="img" /></view>`,
`<view ref=\"page\" id=\"{{c}}\" style=\"{{$eS[c] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden}}\"><image ref=\"img\" id=\"r0-2a9ec0b0\" style=\"{{$eS[a]}}\"/></view>`,
`<view ref=\"page\" id=\"{{c}}\" style=\"{{$eS[c] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden || false}}\"><image ref=\"img\" id=\"r0-2a9ec0b0\" style=\"{{$eS[a]}}\"/></view>`,
`(_ctx, _cache) => {
const __returned__ = { a: _sei('r0-2a9ec0b0', 'image', 'img'), b: _s(_ses('r0-2a9ec0b0')), c: _sei(_gei(_ctx, 'page', 'r1-2a9ec0b0'), 'view', 'page'), d: _s(_ses(_gei(_ctx, 'page', 'r1-2a9ec0b0'))) }
return __returned__
Expand All @@ -192,55 +192,55 @@ describe('complier: options with mergeVirtualHostAttributes', () => {
test('user component attrs with mergeVirtualHostAttributes', () => {
assert(
`<view><custom-image/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{a}}\"><custom-image u-i=\"2a9ec0b0-0\"/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{a}}\"><custom-image u-i=\"2a9ec0b0-0\"/></view>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, '') }
}`,
options
)
assert(
`<view><custom-image v-show="show"/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{b}}\"><custom-image virtualHostHidden=\"{{!a}}\" hidden=\"{{!a}}\" u-i=\"2a9ec0b0-0\"/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{b}}\"><custom-image virtualHostHidden=\"{{!a}}\" hidden=\"{{!a}}\" u-i=\"2a9ec0b0-0\"/></view>`,
`(_ctx, _cache) => {
return { a: _ctx.show, b: _gei(_ctx, '') }
}`,
options
)
assert(
`<view><custom-image id="i"/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{b}}\"><custom-image id=\"i\" virtualHostId=\"i\" u-i=\"2a9ec0b0-0\" u-p=\"{{a||''}}\"/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{b}}\"><custom-image id=\"i\" virtualHostId=\"i\" u-i=\"2a9ec0b0-0\" u-p=\"{{a||''}}\"/></view>`,
`(_ctx, _cache) => {
return { a: _p({ id: 'i' }), b: _gei(_ctx, '') }
}`,
options
)
assert(
`<view><custom-image :id="i"/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{c}}\"><custom-image id=\"{{a}}\" virtualHostId=\"{{a}}\" u-i=\"2a9ec0b0-0\" u-p=\"{{b||''}}\"/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{c}}\"><custom-image id=\"{{a}}\" virtualHostId=\"{{a}}\" u-i=\"2a9ec0b0-0\" u-p=\"{{b||''}}\"/></view>`,
`(_ctx, _cache) => {
return { a: _ctx.i, b: _p({ id: _ctx.i }), c: _gei(_ctx, '') }
}`,
options
)
assert(
`<custom-view v-show="show"><image /></custom-view>`,
`<custom-view u-s=\"{{['d']}}\" u-i=\"2a9ec0b0-0\" class=\"{{[virtualHostClass]}}\" virtualHostClass=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" virtualHostStyle=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden : !a}}\" virtualHostHidden=\"{{virtualHostHidden !== '' ? virtualHostHidden : !a}}\" id=\"{{b}}\" virtualHostId=\"{{b}}\"><image/></custom-view>`,
`<custom-view u-s=\"{{['d']}}\" u-i=\"2a9ec0b0-0\" class=\"{{[virtualHostClass]}}\" virtualHostClass=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" virtualHostStyle=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden !== '' ? virtualHostHidden || false : !a}}\" virtualHostHidden=\"{{virtualHostHidden !== '' ? virtualHostHidden || false : !a}}\" id=\"{{b}}\" virtualHostId=\"{{b}}\"><image/></custom-view>`,
`(_ctx, _cache) => {
return { a: _ctx.show, b: _gei(_ctx, '') }
}`,
options
)
assert(
`<view><custom-image class="class1" style="width:100%"/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" id=\"{{a}}\"><custom-image class=\"class1\" virtualHostClass=\"class1\" style=\"width:100%\" virtualHostStyle=\"width:100%\" u-i=\"2a9ec0b0-0\"/></view>`,
`<view class=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" id=\"{{a}}\"><custom-image class=\"class1\" virtualHostClass=\"class1\" style=\"width:100%\" virtualHostStyle=\"width:100%\" u-i=\"2a9ec0b0-0\"/></view>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, '') }
}`,
options
)
assert(
`<custom-view><custom-image/></custom-view>`,
`<custom-view u-s=\"{{['d']}}\" u-i=\"2a9ec0b0-0\" class=\"{{[virtualHostClass]}}\" virtualHostClass=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" virtualHostStyle=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden}}\" virtualHostHidden=\"{{virtualHostHidden}}\" id=\"{{a}}\" virtualHostId=\"{{a}}\"><custom-image u-i=\"2a9ec0b0-1,2a9ec0b0-0\"/></custom-view>`,
`<custom-view u-s=\"{{['d']}}\" u-i=\"2a9ec0b0-0\" class=\"{{[virtualHostClass]}}\" virtualHostClass=\"{{[virtualHostClass]}}\" style=\"{{virtualHostStyle}}\" virtualHostStyle=\"{{virtualHostStyle}}\" hidden=\"{{virtualHostHidden || false}}\" virtualHostHidden=\"{{virtualHostHidden || false}}\" id=\"{{a}}\" virtualHostId=\"{{a}}\"><custom-image u-i=\"2a9ec0b0-1,2a9ec0b0-0\"/></custom-view>`,
`(_ctx, _cache) => {
return { a: _gei(_ctx, '') }
}`,
Expand Down
8 changes: 4 additions & 4 deletions packages/uni-mp-compiler/__tests__/uniElement.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ describe('compiler: transform UniElement.style.setProperty', () => {
)
assert(
`<view id="view"/>`,
`<view id="{{a}}" style="{{$eS[a] + ';' + virtualHostStyle}}" class="{{[virtualHostClass]}}" hidden="{{virtualHostHidden}}"/>`,
`<view id="{{a}}" style="{{$eS[a] + ';' + virtualHostStyle}}" class="{{[virtualHostClass]}}" hidden="{{virtualHostHidden || false}}"/>`,
`(_ctx, _cache) => {
const __returned__ = { a: _sei(_gei(_ctx, 'view'), 'view'), b: _s(_ses(_gei(_ctx, 'view'))) }
return __returned__
Expand All @@ -46,7 +46,7 @@ describe('compiler: transform UniElement.style.setProperty', () => {
)
assert(
`<custom id="custom"/>`,
`<custom u-i="2a9ec0b0-0" id="{{a}}" virtualHostId="{{a}}" u-p="{{b||''}}" class="{{[virtualHostClass]}}" virtualHostClass="{{[virtualHostClass]}}" style="{{virtualHostStyle}}" virtualHostStyle="{{virtualHostStyle}}" hidden="{{virtualHostHidden}}" virtualHostHidden="{{virtualHostHidden}}"/>`,
`<custom u-i="2a9ec0b0-0" id="{{a}}" virtualHostId="{{a}}" u-p="{{b||''}}" class="{{[virtualHostClass]}}" virtualHostClass="{{[virtualHostClass]}}" style="{{virtualHostStyle}}" virtualHostStyle="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" virtualHostHidden="{{virtualHostHidden || false}}"/>`,
`(_ctx, _cache) => {
const __returned__ = { a: _gei(_ctx, 'custom'), b: _p({ id: _gei(_ctx, 'custom') }) }
return __returned__
Expand Down Expand Up @@ -93,7 +93,7 @@ describe('compiler: transform UniElement.style.setProperty', () => {
)
assert(
`<view id="view" style="color:red"/>`,
`<view id="{{a}}" style="{{'color:red' + ';' + $eS[a] + ';' + virtualHostStyle}}" class="{{[virtualHostClass]}}" hidden="{{virtualHostHidden}}"/>`,
`<view id="{{a}}" style="{{'color:red' + ';' + $eS[a] + ';' + virtualHostStyle}}" class="{{[virtualHostClass]}}" hidden="{{virtualHostHidden || false}}"/>`,
`(_ctx, _cache) => {
const __returned__ = { a: _sei(_gei(_ctx, 'view'), 'view'), b: _s(_ses(_gei(_ctx, 'view'))) }
return __returned__
Expand Down Expand Up @@ -140,7 +140,7 @@ describe('compiler: transform UniElement.style.setProperty', () => {
)
assert(
`<view :id="viewId"/>`,
`<view id="{{a}}" style="{{$eS[a] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden}}"/>`,
`<view id="{{a}}" style="{{$eS[a] + ';' + virtualHostStyle}}\" class=\"{{[virtualHostClass]}}\" hidden=\"{{virtualHostHidden || false}}"/>`,
`(_ctx, _cache) => {
const __returned__ = { a: _sei(_gei(_ctx, _ctx.viewId), 'view'), b: _s(_ses(_gei(_ctx, _ctx.viewId))) }
return __returned__
Expand Down
11 changes: 9 additions & 2 deletions packages/uni-mp-compiler/src/transforms/transformHidden.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {
conditionalExpression,
identifier,
isIdentifier,
logicalExpression,
stringLiteral,
unaryExpression,
} from '@babel/types'
Expand Down Expand Up @@ -55,6 +56,12 @@ export function rewriteHidden(
let hiddenBindingExpr: Expression
if (virtualHost) {
const staticClassPropIndex = findStaticHiddenIndex(props)
// skyline模式hidden传undefined会导致元素被隐藏
const virtualHostHiddenPolyfill = logicalExpression(
'||',
identifier(VIRTUAL_HOST_HIDDEN),
booleanLiteral(false)
)
if (expr || staticClassPropIndex > -1) {
let res: Expression = booleanLiteral(true)
if (expr) {
Expand All @@ -73,11 +80,11 @@ export function rewriteHidden(
identifier(VIRTUAL_HOST_HIDDEN),
stringLiteral('')
),
identifier(VIRTUAL_HOST_HIDDEN),
virtualHostHiddenPolyfill,
res
)
} else {
hiddenBindingExpr = identifier(VIRTUAL_HOST_HIDDEN)
hiddenBindingExpr = virtualHostHiddenPolyfill
}
} else {
// ignore rewrite without virtualHost
Expand Down

0 comments on commit bcff953

Please sign in to comment.