Обновления кэша клиента Apollo, но пользовательский интерфейс не - PullRequest
0 голосов
/ 15 мая 2018

Мое приложение выполняет глубокий запрос для извлечения объекта path по идентификатору и передает результаты через различные реагирующие реквизиты. Среди всего прочего у path есть список steps. Мутация может добавить дополнительный step в список path.steps.

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

const { steps } = cache.readFragment({
  id: `Path:${pathId}`,
  fragment: PathLogFragment,
  fragmentName: 'PathLogFragment'
})
cache.writeFragment({
  id: `Path:${pathId}`,
  fragment: PathLogFragment,
  fragmentName: 'PathLogFragment',
  data: { __typename: 'Path', steps: [...steps, addStep] }
})

Теперь у меня есть один компонент, который потребляет шаги и не обновляется. Это довольно простой, с steps.map(s => <li>step</li>). Это называется так: {path.steps && <Steps steps={path.steps} />}

Существуют реквизиты рендера, участвующие в получении и перемещении path, и в пути есть PureComponents, но вызовов shouldComponentUpdate нет.

Я в растерянности. Что еще я могу проверить?

...