Использование когда реакция в MobX - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь понять, когда в MobX

я только что создал простое хранилище (ErrorStore), которое я хочу использовать для сохранения ошибок приложения, а также когда наблюдаемые изменения уведомляют и указывают (илидругой компонент), чтобы отправить подробности об ошибке.Я использую наблюдаемую ошибку, которая является простым объектом и с вычисляемым свойством перехватывает изменение, каждый раз, когда я устанавливаю сообщение об ошибке и флаг активации в true, затем я сбрасываю его.Я не знаю, почему консольное сообщение с новой ошибкой появляется только один раз.Кто-нибудь знает, что я делаю не так?Ура

class ErrorStore {

    @observable error;

    constructor() {
        this.error = { 
            activate: false,
            message: ''
        }

        when (
            () => { this.errorGenerated; console.log("New error generated" , this.errorGenerated ) }  ,
            () => { 
                this.doRequest()
            }
        );

    }


    @computed get errorGenerated () {
        return (this.error.activate === true && this.error.message.length > 0);
    }

    @action setError = (message) => {
        this.error = Object.assign( this.error, { 
            activate : true,
            message : message
        })
    } 


    doRequest = async () => {
        let r = await axios.post({ 
            url : "/myendopoint",  
            data : { 
                error: this.error.message
            }
        });

        if(r.success) {
          console.log("Error has been sent")
                  this.reset()
        }
    }

   @action reset = () => {
        this.error = {
            activate: false,
            message: '',
        }
    }
}

1 Ответ

0 голосов
/ 29 января 2019

Как правило, вам нужно добавить return в случае, когда первая функция (предикат)целом, когда)

Для получения дополнительной справки проверьте этот пример: https://codepen.io/wizly/pen/yXapdZ

Для документации проверьте это: https://mobx.js.org/refguide/when.html

...