Nano Hash - криптовалюты, майнинг, программирование

Значения по умолчанию apollo-link-state получены из данных запроса?

Примечание. Это ответ на мой предыдущий вопрос о Apollo GraphQl Storing производные данные

Я использую apollo-link-state для хранения данных, полученных из данных запроса. В этом примере данные запроса из базы данных включают некоторые точки (x, y) на графике, а производными данными являются наклон, скользящее среднее, ускорение и т. Д.

Для графических компонентов My React требуются разные комбинации исходных и производных данных. Некоторым нужен только оригинал.

Мне нужно, чтобы производные данные рассчитывались только один раз и только тогда, когда я query для этого.

Пример на сайте Apollo, похоже, подразумевает необходимость запуска сначала мутация, но мне это кажется неправильным, поскольку каждый компонент, который использует эти производные данные, должен сначала вызвать мутацию, чтобы убедиться, что она инициализирована. Я не хочу делать запросы и изменять везде, где мне нужны данные.

Итак, мой вопрос: могу / должен ли я использовать query преобразователи в apollo-link-state или есть какой-то лучший способ думать об этом?

ОБНОВЛЕНИЕ: я думаю, что их пример async может быть тем, что мне нужно, но мне нужно проработать его.


Ответы:


1

Догадаться. Не знаю, почему для меня это не было очевидным с самого начала, но ... задним числом.

В конце концов, вам просто нужно определить свой преобразователь, чтобы что-то возвращать. Решатель может даже делать свои собственные запросы.

export const getProjectDerived = (_obj, { ProjectId }, { cache }, info) => {

  const projQueryRes = cache.readQuery({
    query: projQuery,
    variables: {
      ProjectId
    }
  })
  const newObj = { ...something here... }

  return newObj


}

Затем просто включите его в раздел «Запрос» решателей.

import { getProjectDerived } from './project'

const resolvers = {
  Query: {
    ProjectDerived: getProjectDerived
  }
}
export default resolvers
07.09.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..