如何在Mobx中执行可观察的功能?

时间:2016-05-04 16:02:33

标签: javascript reactjs typescript1.5 mobx

我有一个集合,我想要只读。我希望做一些类似但我不知道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
    }
  }

  ...
}

可能有哪些替代方案?

1 个答案:

答案 0 :(得分:3)

你可以使用

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

对于可观察对象而言,无论是直接访问还是通过多层间接访问都无关紧要,MobX将会对其进行跟踪。