Не применяется декоратор @observable

272
11 сентября 2017, 06:36

Пытаюсь написать store для mobx. Простейший пример:

class AppStore {
    @observable lock;
    constructor() {
        this.lock = false;
    }
    @action('toggle lock')
        toggleLock() {
        this.lock = !this.lock;
    }
    @computed get isLocked() {
        return this.lock;
    }
}
const appStore = new AppStore();

после обработки babel-cli c параметрами

--plugins transform-class-properties,transform-decorators-legacy
--source-maps 
--no-comments 
--stage 0 
--presets=react,es2015 

декоратор @observable не применяется. Никаких ошибок не выдается. Применение декоратора "в лоб":

extendObservable(this, {
    lock: false
});

срабатывает. Самое интересное, что декораторы @action и @computed применились без проблем.

Что я забыл указать/настроить?

в бандл подключаются:

global.observable = require('mobx').observable;
global.computed = require('mobx').computed;
global.action = require('mobx').action;
Answer 1

Ответ заключен в пропущенной по невнимательности строчке документации (https://mobx.js.org/best/decorators.html):

Note that the order of plugins is important: transform-decorators-legacy should be listed first.

Имеет значение порядок указания плагинов. Плагин "transform-decorators-legacy" должен быть первым в списке. После изменения порядка все заработало

READ ALSO
Вставка IMG в DIV contenteditable

Вставка IMG в DIV contenteditable

Хочу вставить IMG смайлик в редактируемый DIV с учётом положения курсора, используя чистый JS (без jquery)В ходе полуторачасового поиска в интернете,...

301
Переместить метку Яндекс.Карты 2.1

Переместить метку Яндекс.Карты 2.1

ПриветствуюЕсть отличный пример по изменению координат

355
JQuery как написать функцию, которая будет срабатывать при выполнении другой (уже встроенной в JQuery) функции?

JQuery как написать функцию, которая будет срабатывать при выполнении другой (уже встроенной в JQuery) функции?

Если использовать val(), то on('change') не работаетЯ хочу написать функцию, которая вызывается после выполнения val(), в ней проверяется - у какого...

382
Многоразовый печатающийся текст. Как в VN

Многоразовый печатающийся текст. Как в VN

Читали визуальные новеллы? Текст появляется по одной букве и происходить это должно неограниченное кол-во разНапример

294