У нас есть что-то вроде этого
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];
});
}
}
}
Но какой из них лучший?