如何使用MobX 4在Coffeescript中进行计算值?

时间:2018-04-05 21:17:05

标签: coffeescript mobx

在Coffeescript中使用MobX 3,我可以这样做:

sudo rm -rf /Library/Developer/CommandLineTools

then go to page https://developer.apple.com/download/more/
download and install previous version

Command Line Tools (macOS 10.13) for Xcode 9.1 - Dec 6, 2017

......按预期工作, 但是对于MobX 4,相同的代码会给出错误:

  

错误:[mobx]传递'计算'因为初始财产价值是否定的   extendObservable支持更长时间。使用吸气剂或装饰器   代替

我能找到的所有示例都使用Javascript with Classes,Decorators和Getters。

但Coffeescript并没有真正做过#34;装饰者"或者" getters",我宁愿不使用课程(我老了)

那么......我怎样才能创建一个计算的" num"在我的"州"? 我可以"计算()"功能被改变,以使它再次工作?

1 个答案:

答案 0 :(得分:0)

好的,我想出了怎么做,因为没有答案......这里是:

compute = (key,fn)->
    Object.defineProperty observable_state, key,
        get: fn
        configurable: true
    obj = {}
    obj[key] = mobx.computed
    mobx.decorate observable_state,obj

首先,您创建一个可配置的" getter" (它必须是可配置的,因为MobX将重新配置它),然后你调用"装饰"函数(而不是使用ES6装饰器)。