我有一个可观察的物体。并将其用于反应观察组件。当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);
})
在这种情况下,我应该将其两次触发(用户名和用户名)
答案 0 :(得分:0)
您可以intercept
和observe
由mobx管理的对象和属性。
拦截通常用于防止某些值。
观察用于观察更改的内容。
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