Skip to content

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

@xaota

Description

@xaota

кейс

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 }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions