【问题标题】:Mobx: Is there any possibilities to set hook on get property in observable object?Mobx:是否有可能在可观察对象的 get 属性上设置挂钩?
【发布时间】:2019-07-25 21:40:24
【问题描述】:

我有一个可观察的对象。并将其用于反应观察组件。当 mobx 获取此对象中的任何属性时,我可以有一些回调吗? 示例:

@observable obj; // in some class that will be a store

@observer
class Test extends React.Component<Props, {}> {
  render() {
    <div>{this.props.obj.user.name}</div>
  }
}

我想在 mobx 从 obj 获取任何属性时添加回调,例如:

obj.on('get', (target, value) => {
  console.log(target, value);
})

在这种情况下,我应该让它被解雇两次(对于用户和名称)

【问题讨论】:

    标签: reactjs mobx


    【解决方案1】:

    您可以interceptobserve 由 mobx 管理的对象和属性。

    拦截通常用于防范某些值。

    Observe 用于观察发生了什么变化。

    const disposer = observe(obj,(change) => {
        console.log(change.type, change.name, "from", change.oldValue, "to", change.object[change.name]);
      if('get' === change.name){
        // obj.get value is changed
      }
    });
    

    更多信息见官方文档:Intercept & Observe

    【讨论】:

    • 谢谢,但我知道这个功能,这不是我要找的。首先,我需要深入拦截。其次,当 mobx 将 prop 添加为 observable 时,我需要有能力做某事。当它生成可观察的属性配置时
    猜你喜欢
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多