最近已从Ember 2.15.0升级到3.7.0,回归的一个方面似乎是,由Ember的哈希和组件帮助器组成的上下文组件不会根据组件属性更新而重新呈现。
在以下组件中:
{{yield (hash
flow-navigation=(component 'page/page-controls'
on-prev=(action 'goToPrev')
steps=linkedSteps
activeStep=_activeStep
)
flow-step=(component _activeStep.path
steps=linkedSteps
activeStep=_activeStep
bucket=bucket
on-prev=(action 'goToPrev')
on-next=(action 'goToNext')
on-complete=(action 'finish')
on-go-to-index=(action 'goToIndex')
)
)}}
didUpdate
生命周期方法是使用适当的道具调用的,但是它并未反映在UI中。
didUpdate(){
console.log('_activeStep', get(this, '_activeStep'));
},
仅使用component
帮助器将其重构为两个组件,UI会按预期进行更新,但是,通过其他方法,我们失去了很多可用的灵活性:
{{component 'page/page-controls'
on-prev=(action 'goToPrev')
steps=linkedSteps
activeStep=_activeStep
}}
{{component _activeStep.path
steps=linkedSteps
activeStep=_activeStep
bucket=bucket
on-prev=(action 'goToPrev')
on-next=(action 'goToNext')
on-complete=(action 'finish')
on-go-to-index=(action 'goToIndex')
}}
有人知道我在这里哪里出错了吗?