Лучшая практика ответа Apollo - PullRequest
0 голосов
/ 04 августа 2020

Я использую компоненты Polaris Apollo и Shopify, и я не уверен, как лучше всего управлять своим ответом на мутацию.

Я объявляю свою мутацию следующим образом.

const [updateShop, {error, data}] = useMutation(SHOP_SETTINGS_MUTATION);

И вызывая его в моем компоненте следующим образом.

    const saveBar =
        showSaveBar ? (
            <ContextualSaveBar
                message="Unsaved changes"
                saveAction={{
                    onAction: () => {
                        updateShop({variables:{...shop, settings:settings}});
                    }
                }}
                discardAction={{
                    onAction: () => {
                        // do something here

                    }
                }}
            />) : (null);

Однако InteliJ отображает следующее предупреждение:

Обещание, возвращаемое из updateShop, игнорируется меньше ... (⌘F1) Информация о проверке: сообщает о вызовах функций, которые возвращают обещание, которое не используется позже. Обычно это непреднамеренно и указывает на ошибку

Я здесь что-то делаю не так?

изображение, показывающее InteliJ, предполагает, что мой код плохой

1 Ответ

0 голосов
/ 04 августа 2020

Функция updateShop возвращает Promise , которое вернет результаты вашей мутации. Предупреждение просто говорит вам, что оно игнорируется. Обычно вы бы сделали что-то вроде этого ...

                    onAction: () => {
                        updateShop({variables:{...shop, settings:settings}})
                            .then((res) => { 
                               ...check the result object here to ensure
                               the operation succeeded...
                            });
                    }

См. https://www.apollographql.com/docs/react/data/mutations/#result

...