如何在Mobx中执行可观察函数

How to do an observable function in Mobx?

本文关键字:观察 函数 执行 Mobx      更新时间:2023-09-26

我存储了一个集合,我希望它是只读的。我想做一些类似的事情,但我不知道Mobx是否提供了一种创建反应函数的方法。

class Store{
  private _col:Mobx.Map;
  ...
  @observable public has(id){
    return _col.has(id);
  }       
}

我在一个没有信任客户的游戏架构中。因此,我不希望我的视图直接访问_col

@observe
class MyView extends Component {
  ...
  componentWillMount(){
    this.id = this.props.params.id;
    autorun(()=>{
      this.props.store.has(this.id)
      //do something smart
    }
  }
  ...
}

有什么替代方案?

您只需使用

public has(id){return _col.has(id);}

对于可观察性,无论是直接访问还是通过几层间接访问,MobX都会跟踪它。