我正在从我的React Native应用程序中删除装饰器(babel有太多问题),我的操作不起作用(包含的函数不运行)。
我在翻译集体诉讼。
class MyStore {
//...
@action
myAction(param) {
//...
}
}
到
class MyStore {
//...
myAction(param) {
action("Perform action with param", (param) => {
//...
})
}
}
将class @action转换为非装饰器形式的正确方法是什么?
3条答案
按热度按时间e5njpo681#
您可以将操作定义为
或使用
runInAction()
bxgwgixi2#
将class @action转换为非装饰器形式的正确方法是什么?
装饰器在运行时对函数调用求值,因此简单地手动调用它们将是最简单的事情。
@action
是一个方法装饰器,方法装饰器在运行时接受以下参数:1.示例方法的类原型(静态方法的构造函数)
1.方法名称(属性键)
1.方法的属性说明符
考虑到这一点,你可以简单地做到:
或:
如果在类声明之后立即执行此操作,则结果应该与使用装饰器的结果完全相同,而不必使用装饰器语法。
kwvwclae3#
为什么不直接使用makeAutoObservable?