首页 > 解决方案 > 当 mobx observable 改变时触发函数

问题描述

我目前正在尝试创建一个函数,当我的商店中的可观察对象发生更改时(我正在使用 mobx),该函数应该在我的反应组件中触发。

这是我的商店 =>

class myStore{
@observable myVariable
}

这是我的反应组件 =>

@observer
export default class MyComponent etends React.component {

    render(){
    //rendering stuff here
    }

    someFunctionTriggeredByObservableChanged(){   // maybe a intercept or observe from mobx ?
    }

}

我想知道我是否可以直接在我的反应组件中使用可能从 mobx 拦截或观察?

谢谢,

标签: reactjsobservablemobx

解决方案


您正在寻找reaction

@inject('store')
@observer
export default class MyComponent etends React.component {

  componentDidMount() {
    reaction(
      () => this.props.store.myVariable,
      () => {
        console.log('reaction');
        // do your stuff
      }
    )
  }

  ...
}

MobX 反应文档


推荐阅读