mobx如何防止儿童观察到可观察到的组件?

时间:2017-04-02 00:57:45

标签: javascript reactjs mobx

我发现mobx可观察组件只能让自己而不是他们的孩子。这是如何实现的?

1 个答案:

答案 0 :(得分:1)

来自MobX文档:

  

MobX会对在执行跟踪函数期间读取的任何现有可观察属性做出反应。

通过在组件上使用@observer,MobX将跟踪并响应在此组件的render函数内定义的observable所发生的更改。 如果您希望每个子组件对更改做出反应,则应使用@observer包装它们。

<强>编辑:

通过在组件上使用observer,MobX将通过告知组件仅在必要时更新(可观察的更改或浅的道具更改)来覆盖shouldComponentUpdate

来自MobX @observer documentation

  当组件的props只有很小的变化时,

观察者也会阻止重新渲染,如果传入组件的数据是被动的,那么这很有意义。此行为类似于React PureRender mixin,但状态更改仍始终处理。如果组件提供了自己的shouldComponentUpdate,则该组件优先。请参阅此github issue

的解释