Поэтому я пытался использовать apollo-boost в приложении React, чтобы использовать кэш для управления состоянием моего клиента с помощью директив @client для запросов, но у меня возникли некоторые проблемы.
В основном я использую writeQuery (), чтобы записать логическое значение для моего локального состояния приложения в компоненте (назовем его компонентом A), и хочу получить это значение в другом компоненте (назовем его компонентом B), используя readQuery () внутри метода componentDidUpdate. Дело в том, что readQuery () в Компоненте B выполняется до того, как writeQuery в Компоненте A устанавливает значение в кеше / локальном состоянии, поэтому значение, прочитанное Компонентом B, получается неверным.
Я подтвердил это с помощью setTimeout, чтобы задержать readQuery (), и действительно после использования тайм-аута значение верное, но этому решению нельзя доверять, я, вероятно, не знаю что-то в клиенте Apollo, потому что эта функциональность довольно проста для местного государственного управления. Любые советы?
Я полагаю, что в Redux это решается, потому что состояние вводится в реквизиты, что приводит к обновлению компонента, поэтому, так как компонент A является тем, который изменяет состояние, компонент B даже не должен будет использовать componentDidUpdate для получить новое значение, так как состояние будет введено, и компонент B будет обновлен с правильным значением.
Буду признателен за любую помощь, извините, если я не прояснился!
EDIT: writeQuery () используется внутри распознавателя мутаций.