📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3
11.26k
stars
1.46k
forks
source link
[Bug Report] ArrayField method will throw error and break #3932
Closed
csc-bo closed 10 months ago
Reproduction link
Steps to reproduce
第一步:加载10w数据 第二步:点到最后一页 第三步:点回第一页点击下面Insert键,就会崩溃
What is expected?
无论怎么翻页,调用ArrayField的method可以正常的添加数据
What is actually happening?
跳过中间的页面翻页,会导致前面的页面添加数据失败
Package
@formily/core@2.2.29
数据的量不重要,中间跳过的页面没有加载过可能是导致错误的原因 if (field.match(_this.pattern)) 这里报错 TypeError: Cannot read properties of undefined (reading 'match')
var Query = /* @class /function () { function Query(props) { var _this = this; this.addresses = []; this.pattern = _formily_sharedWEBPACK_IMPORTED_MODULE_0.FormPath.parse(props.pattern, props.base); this.form = props.form; if (!this.pattern.isMatchPattern) { var matched = takeMatchPattern(this.form, this.pattern.haveRelativePattern ? (0,_shared_internalsWEBPACK_IMPORTED_MODULE_1.buildDataPath)(props.form.fields, this.pattern) : this.pattern); if (matched) { this.addresses = [matched]; } } else { (0,_formily_shared__WEBPACK_IMPORTED_MODULE_0__.each)(this.form.fields, function (field, address) { if (field.match(_this.pattern)) { _this.addresses.push(address); } }); } } Query.prototype.take = function (taker) { return output(this.form.fields[this.addresses[0]], taker); };