effector / effector/farfetched

Настройки для Query чтобы рефетч срабатывал с ее последними параметрами

Open
#470 1 comment 0 reactions 0 assignees View on GitHub
scope:core
Dominant language
TypeScript
Stars
221
Forks
36
PR merge metrics
No merged PRs in 30d

Description

кейс
```typescript
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

пример
```typescript
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 }
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.