关于mobx中的when方法

@ckinmind 2017-03-16 15:52:35发表于 ckinmind/ReactCollect mobx

测试代码:

import {Component} from 'react'
import {Button, Modal,Tree} from 'antd'
import {observable, action,toJS, when} from 'mobx'
import {observer} from 'mobx-react'

@observer
export default class Home extends Component {
    @observable test = false;
    constructor(props) {
        super(props);

        when(
          ()=> this.test,
          ()=> this.dispose()
        );
    }

    dispose(){
        alert('this is dispose');
    }

    @action trick = () => {
        this.test = !this.test;
        console.log('set true');
    };

    render() {
        return (
          <div>
              <Button onClick={this.trick} > 测试 </Button>
          </div>
        );
    }
}

测试结果:
when方法是第一个参数(说参数不太准确)为true的时候,执行以下自定义的方法,但是好像只执行一次
和autorun方法有点像,但是autorun方法可以持续触发,只要满足条件了,但是when方法只触发一次,暂时没有想到很好的应用when方法的场景

参考资料:Mobx: when