在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"在我的"州"? 我可以"计算()"功能被改变,以使它再次工作?
答案 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装饰器)。