Способ переопределить наблюдаемые по умолчанию значения хранилища в конструкторе - PullRequest
0 голосов

У нас есть что-то вроде этого

class Store {
    @observable foo: string;
    @observable bar: string = "baz";
}

И мы хотим иметь возможность переопределить свойства хранилища по умолчанию в init с помощью mobx-реаги * Provider и @inject, например:

new Store() //those will be same as defined in class
new Store({
    foo: "foo's value to be as initial"
})
new Store({
    foo: "foo's value to be as initial",
    bar: "bar's value to be as initial"
})

Существует много способов достижения цели установки значений перед введением в магазины:

  • Создать магазин и просто изменить его реквизиты

  • Используйте что-то подобное в конструкторе:

class Store {
    @observable foo: string;
    @observable bar: string = "baz";

    constructor(model?: {
        foo?: string;
        bar?: boolean;
    }) {
        if (model) {
            Object.keys(model).forEach(propname => {
                this[propname] = model[propname];
            });
        }
    }
}
  • и т.д.

Но какой из них лучший?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...