Skip to content

Commit 4864fb6

Browse files
authored
fix(dsl-page):修复本地运行中对于props属性引用utils出码报错的问题 (#346)
* fix(dsl-page):修复对于props属性引用utils出码报错的问题 * fix(dsl-page):修复对于props属性引用utils出码报错的问题-review
1 parent eafe3df commit 4864fb6

File tree

1 file changed

+9
-0
lines changed
  • packages/vue-generator/src/generator

1 file changed

+9
-0
lines changed

packages/vue-generator/src/generator/page.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,15 @@ function handleBinding(props, attrsArr, description, state) {
159159
return attrsArr.push(`v-model${modelArgs}="${item.value.replace(/this\.(props\.)?/g, '')}"`)
160160
}
161161

162+
// 弥补在recurseChildren方法中,当children为undefined,但是该元素的props存在变量绑定的情况,此变量绑定的为
163+
// 当前JSResources在props的使用场景为变量绑定,使用范式一般为:this.xxx
164+
const pickResourceKeys = item.value?.match(/(?<=this\.)\w+/g) || []
165+
const itemObject = Object.fromEntries(pickResourceKeys.map((key) => [key, true]))
166+
167+
Object.keys(description.jsResource).forEach((jsResourceKey) => {
168+
description.jsResource[jsResourceKey] = description.jsResource[jsResourceKey] || itemObject[jsResourceKey]
169+
})
170+
162171
// expression 使用 v-bind 绑定
163172
return attrsArr.push(`:${key}="${item.value.replace(/this\.(props\.)?/g, '')}"`)
164173
}

0 commit comments

Comments
 (0)