MobX actions, computed и observable в отдельных файлах - это возможно?
Есть ли возможность вынести @action, @computed и @observable сущности, из mobx store, в отдельные файлы, без sms и регистрации костылей?
Ответы (1 шт):
Автор решения: Yugofx
→ Ссылка
Все, что делают декораторы, вы можете сделать вручную. По сути, они просто оборачивают вашу функцию (или значения) в собственные функции mobx и регистрируют прокси-доступ к ним.
Объявите все, что вы хотите разделить, в отдельных файлах. Импортируйте в любые файлы, и оборачивайте на месте.
Или сразу возвращайте обернутыми.
Не:
class Test {
@observable value
}
А
class Test {
constructor() {
this.value;
decorate(this, { value: observable.ref })
}
}
Или если говорить про actions
// actions.js
export function increment() {
this.counter++;
}
// Test.js
import { increment } from './actions';
...
constructor() {
this.increment = action(increment.bind(this));
}