Посмотрите
видео
В чем суть...
При клике на
add to cart
происходит запрос к серверу на добавление товара в корзину.
На время этого запроса кнопка должна блокироваться атрибутом
disabled
Код кнопки:
<Button onClick={() => cart.add(product.id)} disabled={cart.inProcess(product.id)}>
Add to cart
</Button>
Класс Cart:
@observable processId = {}
@computed get inProcess() {
return (id) => {
console.log(Object.keys(this.processId))
return this.processId.hasOwnProperty(id)
}
}
@action add(id) {
this.processId[id] = true
this.api.add(id).then(() => {
this.products.push({id, count: 1})
delete this.processId[id]
})
}
Если убрать
console.log
, то геттер перестает работать и кнопка не блокируется.
Почему так происходит и как это исправить?