Я пытаюсь понять, когда в 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: '',
}
}
}