diff --git a/packages/core/src/i18n.ts b/packages/core/src/i18n.ts index 51521d8942..09bad4e1ca 100644 --- a/packages/core/src/i18n.ts +++ b/packages/core/src/i18n.ts @@ -106,12 +106,13 @@ export class I18n { define(locale: string, dict: I18n.Store): () => void define(locale: string, key: string, value: I18n.Node): () => void define(locale: string, ...args: [I18n.Store] | [string, I18n.Node]) { + const caller = this[Context.current] || this.ctx const dict = this._data[locale] ||= {} const paths = [...typeof args[0] === 'string' ? this.set(locale, args[0] + '.', args[1]) : this.set(locale, '', args[0])] this.ctx.emit('internal/i18n') - return this[Context.current]?.collect('i18n', () => { + return caller.collect('i18n', () => { for (const path of paths) { delete dict[path] } diff --git a/packages/core/src/schema.ts b/packages/core/src/schema.ts index a3be578f2a..f1446ce43d 100644 --- a/packages/core/src/schema.ts +++ b/packages/core/src/schema.ts @@ -61,6 +61,7 @@ export class SchemaService { constructor(public ctx: Context) {} extend(name: string, schema: Schema, order = 0) { + const caller = this[Context.current] const target = this.get(name) const index = target.list.findIndex(a => a[kSchemaOrder] < order) schema[kSchemaOrder] = order @@ -70,7 +71,7 @@ export class SchemaService { target.list.push(schema) } this.ctx.emit('internal/schema', name) - this[Context.current]?.on('dispose', () => { + caller?.on('dispose', () => { remove(target.list, schema) this.ctx.emit('internal/schema', name) }) @@ -81,9 +82,10 @@ export class SchemaService { } set(name: string, schema: Schema) { + const caller = this[Context.current] this._data[name] = schema this.ctx.emit('internal/schema', name) - this[Context.current]?.on('dispose', () => { + caller?.on('dispose', () => { delete this._data[name] this.ctx.emit('internal/schema', name) })