-
-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Labels
Milestone
Description
кейс
const query = createQuery(...);
const mutation = createMutation(...);
query.start({ param: 1 });
update(query, {
on: mutation,
by: {
success: () => ({
error: null,
refetch: true // вот сюда надо передать { params: { param: 1 } }, и в более сложном случае требуется много писанины
})
}
});
mutation.start()в этом случае query стартует после мутации без параметров, что не есть удобно
Чтобы это поведение изменить надо передавать в refetch параметры, а далеко не всегда есть удобный доступ к ним (на самом деле просто писанины много лишней)
Предложение
при создании query добавить настройку типа keepParamsOnRefetch чтобы если происходит вызов refetch были использованы последние параметры, с которыми вызывалась query.start
пример
const query = createQuery({
...,
keepParamsOnRefetch: true
});
const mutation = createMutation(...);
query.start({ param: 1 });
update(query, {
on: mutation,
by: {
success: () => ({
error: null,
refetch: true // вызовется с {param: 1}
})
}
});
mutation.start()
// дальше код условный - не претендует на реалистичность, допустим что все синхронно
mutation.start() // после мутации query будет снова вызвана с { param: 1 }
query.start({ param: 2 })
mutation.start() // после мутации query будет вызвана с { param: 2 }