我的应用程序商店的观察变量中有一个带有TypeScript类实例的外部库:
class Store:
@observable active_obj:ExternalClass;
此实例有一个方法,在调用时,更新其内部状态,保留对象:
store.active_obj.change()
现在,由于Mobx没有观察到这个对象本身,也没有观察它(我假设)属性,只是直接在字段active_obj上发生了变化(就像分配给它的新值)。由于MyClass的实例是由外部库提供的,并最终在这个库的组件中呈现,因此我无法将observable和观察者添加到其类结构中,也不能添加React组件。请注意,这只是我认为更改对象属性不会触发重新渲染的原因......
我不得不通过使用其他观察到的变量来作弊,我直接用无意义数据更改,同时我调用未观察到的实例进行更改。在树上方的组件上添加对此变量的引用,我可以触发重新呈现,从而在外部库的(不可观察的)组件上产生更新。
我的问题是,如何让Mobx了解更改,以便通知观察者store.active_obj实例?
我认为Mobx文档的这一部分对此有所警告,但没有解决方法或解决方案:
**如果喜欢对象而不是字符串,并且它们是由自己的Like组件呈现的,则Likes组件不会为特定类似内容发生的更改而重新渲染。
根据@ mweststrate的提问,我提供了一些背景信息:
我想到了一些可能的解决方案: