Рубрики
Без рубрики

Как делать мутации Hoc Apollo правильно

Лахлан Молодыми, как делать мутации Hoc Apollo HOC Правый Wayexpert Custom Graphics … .Chances, как и многие люди, вы идете в Apollo и Graphql от фона отдыха. Тем не менее, когда вы начинаете исследовать рабочие примеры этого стека и различные способы реализации его,

Лахлан молодой

Скорее всего, как и многие люди, вы приезжаете на Apollo и GraphQL с фона отдыха API. Тем не менее, когда вы начинаете изучать рабочие примеры этого стека и различных способов реализации его, вы, несомненно, будете созрены на множестве различий, будь то библиотеки Apollo, или вся «получите ваши данные, как вы хотите» Менталитет вокруг GraphQL и компонентов Apollo’s Render.

То, что я хочу сделать в этой статье, помогает подать два ключевых вопроса при написании мутации. Это в первую очередь нацелены на реализации HOC Однако это более или менее то же самое для компонентов Render, вместо этого настроить клавиши объектов.

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

Важно: .. Если вы только начинаете начинаться только с Apollo, я искренне умоляю вас реализовать свои компоненты рендеринга, которые они выпустили вокруг версии 2.1. HOCS мягкие устаревшие и как таковые, отсутствуют много их документации, как упомянуто несколько человек. здесь Отказ

Оптимистичный ответ

OmitualisticResponse – это способ, которым мы управляем, если наше приложение онлайн или не наряду с статусом наших запросов к БД.

Если мы мутируем нашу базу данных без подключения, оптимистичный ответ позволяет ей существовать с переменными, которые мы разумно ожидаем.

Например Если предположить, что мы добавим этого пользователя к БД:

{    userId: 123,    firstName: "Lachlan",    lastName: "Young",    status: "Hungry"}

Мы хотели бы обновить наши данные пользователя с вышеуказанными данными. Однако из-за того, как работают наши мутации (и это специально для HOCS, но могут быть применены для рендеринга компонентов тоже), существует жизненный цикл мутации, идущий от загрузки, к успеху/отказу/не может подключиться.

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

Когда вы снова подключаетесь к Интернету или достигнете DB, он будет обновлять ответ с действительными данными. Внутри этого ответа вы можете обрабатывать такие вещи, как useriD, который вы генерируете на клиенте, поэтому обновляя мой жесткозедированный идентификатор 123, к UUID.

Если бы мы не были онлайн, мы все еще видели и взаимодействуют с запросом, как ожидалось, и любые изменения будут поставлены в очередь, чтобы затем мутировать сервер после подключения.

Это оптимистичный ответ.

Обновлять

Что касается того, как справиться с ответом из базы данных, у вас на самом деле есть доступ к недвижимости, называемую Обновление и для HOCS это выглядит так:

update: (proxy, { data: { myDetails } }) => {    try {        // Read the data from our cache for this query.        const data = proxy.readQuery({             query: gql`${GET_MY_DETAILS}`        });
        // Add our new request from the mutation to the end.        data.getMyDetails.push(myDetails);
        // Write our data back to the cache.        proxy.writeQuery({             query: gql`${GET_MY_DETAILS}`,            data        });    } catch (err) {        console.log('Error updating the cahche: ', err.message);    }}

По сути, это происходит после поля оптимистичности в мутации. Он напрямую обрабатывает, что произойдет после того, как вы получите ответ, принимая его с вершины у него есть прокси и данные Как это два аргумента. Прокси Необходимо буквально наш клиент, однако для некоторых конфигураций вам может быть лучше обслуживаться в качестве кэша. Данные это ответ от мутации. В этом случае я деконструировал, чтобы объяснить объект MyDetails дальше.

MyDetails состоит из всего в пользовательском объекте выше, но теперь идентификатор будет действительным UUID вместо 123. Затем мы используем методы avolloclient для чтения и записи и прочтения деталей, которые мы сохранили в нашем кеше. Оттуда мы добавляем наши новые детали и напишите их в кеш. Таким образом, после того, как я вернулся к своим деталям от входной страницы, мои новые детали будут мгновенно доступны, потому что они являются точкой истины в кэше.

Дополнительная информация

Как написать это, все рендеринг реквизиты документированы здесь или увидеть ниже для долголетия, может быть применено к вашей мутации HOC. Как я уже упоминал во введении в настоящую статью, документация HOC действительно устарела. Тем не менее, параметры, приведенные ниже, все могут быть реализованы в виде клавиш к объекту HOC.

Большое спасибо за чтение. Обычно вы можете видеть, как я плаваю вокруг провисания Аполлона в каналах # React-Apollo или # Apollo. Чтобы зарегистрироваться для провисания и получить больше конкретных советов, нажмите здесь Отказ

Оригинал: “https://www.freecodecamp.org/news/do-apollo-hoc-mutations-goodly-bb4effdbee94/”