-
-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Шортхенды для вызова query после мутаций и / или других query (операторы success, failure) #472
Comments
Чем плоха форма
? Не понимаю, почему это должен быть новый оператор, который явно дублирует часть функциональности оператор Напиши, пожалуйста RFC, в котором будут пояснения о дизайне, рассмотренные варианты дизайна, их плюсы и минусы. https://github.com/igorkamyshev/farfetched/blob/master/CONTRIBUTING.md |
вообще идея в том что это просто шортхенд для самых частых кейсов типа |
Есть вот такое еще предложение update(usersListQuery)
.onMutationSuccess(addUserMutation)
.setResult((list, user) => list.concat(user))
update(usersListQuery)
.onMutationFailure(addUserMutation)
.setError((queryError, mutationError) => mutationError)
update(usersListQuery)
.onMutationFailure(addUserMutation)
.doRefetch() Про проблему часто писали в чатах, сейчас апишка тяжеловатая и внутри надо делать тайпгард у квери чтобы отсечь кейс когда у нее состояние ошибки, из-за этого код очень некрасивым и многословным становится, с конструкциями вида Хочется иметь апишку которая позволяет написать логику апдейта под кейс когда квери не в состоянии ошибки (или наоборот только когда в состоянии ошибки), и не сужать ручками типы Мне кажется апишка из примера может это покрыть, но возможно надо еще подумать с неймингом чтобы было лаконичнее. Также можно добавить методы для ивентов, например: update(userListQuery)
.onEvent(userAdded)
.setResult((list, user) => list.concat(user)) Есть мнение что это не совсем effector-like апишка и она должна быть объектом как во всех операторах. Но вложенность тогда выглядит неприятно и это не так удобно писать, в отличие от чейнинга На полноценную RFC нет времени и сил, сорри |
Часто требуется загружать данные после получения других данных или (ещё чаще) обновлять их после мутаций
Текущая реализация (даже с учетом #465) слишком многословна. А если требуется делать mapParams, то наступает полный мрак.
Идея - базовые операторы
success
иfailure
для простого описания порядка запросовпример:
The text was updated successfully, but these errors were encountered: