Mobx: уничтожение наблюдаемых свойств для локального охвата - PullRequest
0 голосов
/ 07 декабря 2018

Я просто унаследовал некоторый код, который имеет некоторые соглашения, о которых я немного беспокоюсь.Он использует mobx для управления состоянием (которое я никогда раньше не использовал), и у меня возник вопрос о том, что я продолжаю видеть снова и снова:

Предыдущий автор ранее хотел декструктурировать все его наблюдаемое состояние до локальной переменной.используя их:

@observer
class FooForm extends React.Component {
    @observable
    public fooString: string;
    @observable
    public fooNum: number;
    @observable
    public error: string;

    @action public submitFoo = () => {
        let {fooString, fooNum} = this; //for brevity?

        if(!fooString.length){
           this.error = 'Foo String must be set';
           return;
        }
        if(!fooNum < 100){
           this.error = 'fooNum must be at least 100';
           this.fooNum = 100;
           return;
        }
        //...submit
    }
    // render() and such...
}

Кажется, что они сделали это только для того, чтобы попытаться сократить свой код (EG fooNum против this.fooNum), однако при этом создается впечатление, что они загрязнили локальную область видимости.со ссылками, которые могут привести к ошибкам, учитывая требования к наблюдаемым.

EG: было бы очень легко случайно набрать fooNum = 100; вместо this.fooNum = 100;, что не привело бы к заметному изменению состояния!

mobx общие ошибки doc предостерегает от локального хранения наблюдаемых, но это немного отличается, поскольку они просто объявляются в локальной области видимости.

Чрезмерно ли я реагирую?Это обычная практика в приложениях mobx?

Или я оправдан, чтобы обсудить это с ними?(как я уже сказал, я новичок в mobx, поэтому не знаю, что является нормой).

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