我发现mobx可观察组件只能让自己而不是他们的孩子。这是如何实现的?
答案 0 :(得分:1)
来自MobX文档:
MobX会对在执行跟踪函数期间读取的任何现有可观察属性做出反应。
通过在组件上使用@observer
,MobX将跟踪并响应在此组件的render函数内定义的observable所发生的更改。
如果您希望每个子组件对更改做出反应,则应使用@observer
包装它们。
<强>编辑:强>
通过在组件上使用observer
,MobX将通过告知组件仅在必要时更新(可观察的更改或浅的道具更改)来覆盖shouldComponentUpdate
。
来自MobX @observer
documentation:
当组件的props只有很小的变化时,观察者也会阻止重新渲染,如果传入组件的数据是被动的,那么这很有意义。此行为类似于React PureRender mixin,但状态更改仍始终处理。如果组件提供了自己的shouldComponentUpdate,则该组件优先。请参阅此github issue
的解释