我正在从我的React Native应用程序中移除装饰器(与babel有太多问题)并且我的操作不起作用(包含的函数不运行)。
我正在翻译集体诉讼,例如
externalNativeBuild {
ndkBuild {
path '<path to you android.mk file>'
}
}
要
class MyStore {
//...
@action
myAction(param) {
//...
}
}
将类@action转换为非装饰器表单的正确方法是什么?
答案 0 :(得分:3)
您可以将操作定义为
class MyStore {
//...
myAction = action(param => {
//...
});
}
或使用runInAction()
class MyStore {
//...
myAction(param) {
runInAction(() => {
//...
})
}
}
答案 1 :(得分:1)
将类@action转换为非装饰器表单的正确方法是什么?
装饰器在运行时评估函数调用,因此简单地手动调用它们将是最直接的事情。 @action
是方法装饰器,方法装饰器在运行时采用以下参数:
考虑到这一点,你可以简单地做:
class MyStore {
myAction(param) {
// ...
}
}
// Apply the @action decorator manually:
action(MyStore.prototype, "myAction");
或:
action(MyStore.prototype, "myAction", Object.getOwnPropertyDescriptor(MyStore.prototype, "myAction"));
如果在类声明后立即执行此操作,则结果应与使用装饰器完全相同,而不必使用装饰器语法。