Я использую graphql HOC
с мутацией для типа ввода checkbox
. Я также добавил оптимистичный вариант обновления пользовательского интерфейса к нему. Если флажок установлен, мутация будет вызвана value=true
, а при снятии флажка - мутация value=false
.
.
Но проблема в том, что быстрое нажатие приводит к нескольким мутационным вызовам на сервер, и в ответах возникает задержка. Тем временем optimisticResponse
update выполняет свою работу и устанавливает флажок. Когда приходит ответ от сервера, функция обновления вызывается снова, и она переключает флажок, приводящий к сбою в пользовательском интерфейсе.
Позвольте мне суммировать поток, который я мог предвидеть
Порядок кликов:
Check => Uncheck => Check
Порядок обновлений пользовательского интерфейса:
Check(optimistic response) => Uncheck(optimistic response) => Check(server response) => Check(Optimistic response) => Uncheck(server response) => Check(server response)
Есть ли способ убрать эти глюки?