diff --git a/packages/renderer-core/src/renderer/base.tsx b/packages/renderer-core/src/renderer/base.tsx index 200bdb409..fc612b430 100644 --- a/packages/renderer-core/src/renderer/base.tsx +++ b/packages/renderer-core/src/renderer/base.tsx @@ -712,7 +712,7 @@ export default function baseRenererFactory() { ) { return checkProps(props); } - if (isJSExpression(props)) { + if (isJSExpression(props) || isJSFunction(props)) { props = parseExpression(props, scope); // 只有当变量解析出来为模型结构的时候才会继续解析 if (!isSchema(props) && !isJSSlot(props)) return checkProps(props); diff --git a/packages/renderer-core/src/utils/common.ts b/packages/renderer-core/src/utils/common.ts index 78bead5ac..55e5c1efc 100644 --- a/packages/renderer-core/src/utils/common.ts +++ b/packages/renderer-core/src/utils/common.ts @@ -412,7 +412,7 @@ export function parseData(schema: any, self: any): any { return schema; } -/* 全匹配{{开头,}}结尾的变量表达式,或者对象类型JSExpression,支持省略this */ +/* 全匹配{{开头,}}结尾的变量表达式,或者对象类型JSExpression/JSFunction,支持省略this */ export function parseExpression(str: any, self: any) { try { const contextArr = ['"use strict";', 'var __self = arguments[0];'];