diff --git a/packages/uni-h5/src/framework/setup/index.ts b/packages/uni-h5/src/framework/setup/index.ts index 711e767940abbcb217e7264422aa1fc40c5e46f4..cc64f57b5f5c9dd66613af43f3651adc6b3e2651 100644 --- a/packages/uni-h5/src/framework/setup/index.ts +++ b/packages/uni-h5/src/framework/setup/index.ts @@ -1,4 +1,4 @@ -import { extend, invokeArrayFns, isPlainObject } from '@vue/shared' +import { extend, invokeArrayFns, isPlainObject, isFunction } from '@vue/shared' import { ComponentInternalInstance, ComponentPublicInstance, @@ -187,12 +187,14 @@ export function setupApp(comp: any) { before(comp) { comp.mpType = 'app' const { setup } = comp - comp.setup = (props, ctx) => { - return setup && setup(props, ctx) - } - comp.render = () => { + const render = () => { return openBlock(), createBlock(LayoutComponent) } + comp.setup = (props, ctx) => { + const res = setup && setup(props, ctx) + return isFunction(res) ? render : res + } + comp.render = render }, }) }