diff --git a/packages/taro-qq/src/create-component.js b/packages/taro-qq/src/create-component.js index 425f0258b488..dd51fbf70ae4 100644 --- a/packages/taro-qq/src/create-component.js +++ b/packages/taro-qq/src/create-component.js @@ -250,9 +250,11 @@ function initComponent (ComponentClass, isPage) { // 动态组件执行改造函数副本的时,在初始化数据前计算好props if (!isPage) { const compid = this.data.compid - propsManager.observers[compid] = { - component: this.$component, - ComponentClass + if (compid) { + propsManager.observers[compid] = { + component: this.$component, + ComponentClass + } } const nextProps = filterProps(ComponentClass.defaultProps, propsManager.map[compid], this.$component.props) this.$component.props = nextProps diff --git a/packages/taro-qq/src/propsManager.js b/packages/taro-qq/src/propsManager.js index d49be93bb069..8cda7a5b466b 100644 --- a/packages/taro-qq/src/propsManager.js +++ b/packages/taro-qq/src/propsManager.js @@ -1,5 +1,6 @@ import { updateComponent } from './lifecycle' import { filterProps } from './create-component' +import nextTick from './next-tick' class Manager { map = {} @@ -25,7 +26,7 @@ class Manager { const nextProps = filterProps(ComponentClass.defaultProps, props, component.props) component.props = nextProps component._unsafeCallUpdate = true - updateComponent(component) + nextTick(() => updateComponent(component)) component._unsafeCallUpdate = false } }) diff --git a/packages/taro-swan/src/create-component.js b/packages/taro-swan/src/create-component.js index e24dd2ffb11a..443c0afca01c 100644 --- a/packages/taro-swan/src/create-component.js +++ b/packages/taro-swan/src/create-component.js @@ -195,9 +195,11 @@ function initComponent (ComponentClass, isPage) { // 动态组件执行改造函数副本的时,在初始化数据前计算好props if (hasPageInited && !isPage) { const compid = this.data.compid - propsManager.observers[compid] = { - component: this.$component, - ComponentClass + if (compid) { + propsManager.observers[compid] = { + component: this.$component, + ComponentClass + } } const nextProps = filterProps(ComponentClass.defaultProps, propsManager.map[compid], this.$component.props) this.$component.props = nextProps diff --git a/packages/taro-swan/src/propsManager.js b/packages/taro-swan/src/propsManager.js index d49be93bb069..8cda7a5b466b 100644 --- a/packages/taro-swan/src/propsManager.js +++ b/packages/taro-swan/src/propsManager.js @@ -1,5 +1,6 @@ import { updateComponent } from './lifecycle' import { filterProps } from './create-component' +import nextTick from './next-tick' class Manager { map = {} @@ -25,7 +26,7 @@ class Manager { const nextProps = filterProps(ComponentClass.defaultProps, props, component.props) component.props = nextProps component._unsafeCallUpdate = true - updateComponent(component) + nextTick(() => updateComponent(component)) component._unsafeCallUpdate = false } }) diff --git a/packages/taro-tt/src/create-component.js b/packages/taro-tt/src/create-component.js index b8547b689a07..5eb26249b1b6 100644 --- a/packages/taro-tt/src/create-component.js +++ b/packages/taro-tt/src/create-component.js @@ -206,9 +206,11 @@ function initComponent (ComponentClass, isPage) { // 动态组件执行改造函数副本的时,在初始化数据前计算好props if (hasPageInited && !isPage) { const compid = this.data.compid - propsManager.observers[compid] = { - component: this.$component, - ComponentClass + if (compid) { + propsManager.observers[compid] = { + component: this.$component, + ComponentClass + } } const nextProps = filterProps(ComponentClass.defaultProps, propsManager.map[compid], this.$component.props) this.$component.props = nextProps diff --git a/packages/taro-tt/src/propsManager.js b/packages/taro-tt/src/propsManager.js index d49be93bb069..8cda7a5b466b 100644 --- a/packages/taro-tt/src/propsManager.js +++ b/packages/taro-tt/src/propsManager.js @@ -1,5 +1,6 @@ import { updateComponent } from './lifecycle' import { filterProps } from './create-component' +import nextTick from './next-tick' class Manager { map = {} @@ -25,7 +26,7 @@ class Manager { const nextProps = filterProps(ComponentClass.defaultProps, props, component.props) component.props = nextProps component._unsafeCallUpdate = true - updateComponent(component) + nextTick(() => updateComponent(component)) component._unsafeCallUpdate = false } }) diff --git a/packages/taro-weapp/src/create-component.js b/packages/taro-weapp/src/create-component.js index aa6a734b4c28..e94939523bed 100644 --- a/packages/taro-weapp/src/create-component.js +++ b/packages/taro-weapp/src/create-component.js @@ -250,9 +250,11 @@ function initComponent (ComponentClass, isPage) { // 动态组件执行改造函数副本的时,在初始化数据前计算好props if (!isPage) { const compid = this.data.compid - propsManager.observers[compid] = { - component: this.$component, - ComponentClass + if (compid) { + propsManager.observers[compid] = { + component: this.$component, + ComponentClass + } } const nextProps = filterProps(ComponentClass.defaultProps, propsManager.map[compid], this.$component.props) this.$component.props = nextProps diff --git a/packages/taro-weapp/src/propsManager.js b/packages/taro-weapp/src/propsManager.js index d49be93bb069..8cda7a5b466b 100644 --- a/packages/taro-weapp/src/propsManager.js +++ b/packages/taro-weapp/src/propsManager.js @@ -1,5 +1,6 @@ import { updateComponent } from './lifecycle' import { filterProps } from './create-component' +import nextTick from './next-tick' class Manager { map = {} @@ -25,7 +26,7 @@ class Manager { const nextProps = filterProps(ComponentClass.defaultProps, props, component.props) component.props = nextProps component._unsafeCallUpdate = true - updateComponent(component) + nextTick(() => updateComponent(component)) component._unsafeCallUpdate = false } })